У меня есть веб-API ASP.NET Core 6, написанный на C#, и я хочу создать базу данных PostgreSQL с помощью Entity Framework Core 6.
При выполнении следующей команды я получаю сообщение об ошибке с небольшим количеством информации о том, что может быть не так...
dotnet ef dbcontext scaffold "Host=pi;Database=mydb;Username=root;Password=mypw"
Npgsql.EntityFrameworkCore.PostgreSQL --project=myAPI --verbose
Возникает следующая ошибка:
Попытка метода Npgsql.EntityFrameworkCore.PostgreSQL.Scaffolding.Internal.NpgsqlDatabaseModelFactory.PopulateGlobalDatabaseInfo(Npgsql.NpgsqlConnection, Microsoft.EntityFrameworkCore.Scaffolding.Metadata.DatabaseModel)» для доступа к методу «Npgsql.NpgsqlConnection.get_Settings()» не удалась.
Сервер работает на Raspberry Pi внутри докер-контейнера, эта инфраструктура работает полностью, так как я могу подключиться с помощью оболочки от моего устройства к базе данных. Я использую последнюю версию образа Docker PostgreSQL.
Вот версии пакетов Nuget, которые я установил:
Microsoft.EntityFrameworkCore (6.0.22)
Microsoft.EntityFrameworkCore.Design (6.0.22)
Microsoft.EntityFrameworkCore.Tools (6.0.22)
Npgsql.EntityFrameworkCore.PostgreSQL (6.0.22)
Swashbuckle.AspNetCore (6.5.0)
Я также пытался создать dbContext
самостоятельно, но та же ошибка возникает, если я хочу получить доступ к каким-либо данным из базы данных. Соединение может быть установлено, поскольку если я изменю пароль в строке подключения, произойдет исключение аутентификации.
На моем устройстве в фоновом режиме работал процесс postgresql. Я завершил процесс, и теперь все работает нормально. Я думаю, у них какой-то конфликт был...