Строка подключения через cli для обновления базы данных ⇐ C#
Строка подключения через cli для обновления базы данных
В новом проекте я изучаю мультитенантность, когда у каждого арендатора есть собственная база данных.
Идея состоит в том, чтобы использовать пакет NuGet finbuckle, он получает строку подключения из appsettings.development.json.
но для создания миграций и обновления базы данных строка подключения должна быть передана в качестве аргумента.
Моя база данных находится через докер с помощью команды:
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=myPassword" -p 1433:1433 --name sqlTest--hostname sqlTest -d mcr.microsoft.com/mssql/server:2022-latest и с помощью Azure Data Studio я успешно подключился к базе данных.
когда бы я ни захотел использовать команду:
обновление базы данных dotnet ef -- --connection-string "Server=localhost,1433; Database=test; User Id=SA; Password=myPassword" Я получаю сообщение об ошибке:
System.ArgumentException: формат строки инициализации не соответствует спецификации, начиная с индекса 0. в Microsoft.Data.Common.DbConnectionOptions.GetKeyValuePair(String ConnectionString, Int32 currentPosition, буфер StringBuilder, логическое значение useOdbcRules, String& имя ключа, String& значение ключа) в Microsoft.Data.Common.DbConnectionOptions.ParseInternal(разбираемый словарь `2, String ConnectionString, логическое значение buildChain, синонимы словаря`2, логический firstKey) в Microsoft.Data.Common.DbConnectionOptions..ctor(String ConnectionString, Словарь `2 синонима) в Microsoft.Data.SqlClient.SqlConnectionString..ctor(String ConnectionString) в Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String ConnectionString, DbConnectionOptions предыдущая версия) в Microsoft.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup (ключ DbConnectionPoolKey, DbConnectionPoolGroupOptionspoolOptions, DbConnectionOptions& userConnectionOptions) в Microsoft.Data.SqlClient.SqlConnection.ConnectionString_Set (ключ DbConnectionPoolKey) в Microsoft.Data.SqlClient.SqlConnection.set_ConnectionString (строковое значение) в Microsoft.Data.SqlClient.SqlConnection..ctor(String ConnectionString) в Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerConnection.CreateDbConnection() в Microsoft.EntityFrameworkCore.Storage.RelationalConnection.get_DbConnection() в Microsoft.EntityFrameworkCore.Diagnostics.RelationalLoggerExtensions.MigrateUsingConnection (диагностика IDiagnosticsLogger`1, средство миграции IMigrator, соединение IRelationalConnection) в Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) в Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String ConnectionString, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String ConnectionString, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.c__DisplayClass0_0.b__0() в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (Действие-действие) Формат строки инициализации не соответствует спецификации, начиная с индекса 0.
Я уже пробовал несколько форматов строк подключения, например, указывая IP вместо localhost и добавляя порт к имени сервера. Но у меня всегда возникает одна и та же ошибка, и я не знаю, что делать дальше.
В новом проекте я изучаю мультитенантность, когда у каждого арендатора есть собственная база данных.
Идея состоит в том, чтобы использовать пакет NuGet finbuckle, он получает строку подключения из appsettings.development.json.
но для создания миграций и обновления базы данных строка подключения должна быть передана в качестве аргумента.
Моя база данных находится через докер с помощью команды:
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=myPassword" -p 1433:1433 --name sqlTest--hostname sqlTest -d mcr.microsoft.com/mssql/server:2022-latest и с помощью Azure Data Studio я успешно подключился к базе данных.
когда бы я ни захотел использовать команду:
обновление базы данных dotnet ef -- --connection-string "Server=localhost,1433; Database=test; User Id=SA; Password=myPassword" Я получаю сообщение об ошибке:
System.ArgumentException: формат строки инициализации не соответствует спецификации, начиная с индекса 0. в Microsoft.Data.Common.DbConnectionOptions.GetKeyValuePair(String ConnectionString, Int32 currentPosition, буфер StringBuilder, логическое значение useOdbcRules, String& имя ключа, String& значение ключа) в Microsoft.Data.Common.DbConnectionOptions.ParseInternal(разбираемый словарь `2, String ConnectionString, логическое значение buildChain, синонимы словаря`2, логический firstKey) в Microsoft.Data.Common.DbConnectionOptions..ctor(String ConnectionString, Словарь `2 синонима) в Microsoft.Data.SqlClient.SqlConnectionString..ctor(String ConnectionString) в Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String ConnectionString, DbConnectionOptions предыдущая версия) в Microsoft.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup (ключ DbConnectionPoolKey, DbConnectionPoolGroupOptionspoolOptions, DbConnectionOptions& userConnectionOptions) в Microsoft.Data.SqlClient.SqlConnection.ConnectionString_Set (ключ DbConnectionPoolKey) в Microsoft.Data.SqlClient.SqlConnection.set_ConnectionString (строковое значение) в Microsoft.Data.SqlClient.SqlConnection..ctor(String ConnectionString) в Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerConnection.CreateDbConnection() в Microsoft.EntityFrameworkCore.Storage.RelationalConnection.get_DbConnection() в Microsoft.EntityFrameworkCore.Diagnostics.RelationalLoggerExtensions.MigrateUsingConnection (диагностика IDiagnosticsLogger`1, средство миграции IMigrator, соединение IRelationalConnection) в Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) в Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String ConnectionString, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String ConnectionString, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.c__DisplayClass0_0.b__0() в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (Действие-действие) Формат строки инициализации не соответствует спецификации, начиная с индекса 0.
Я уже пробовал несколько форматов строк подключения, например, указывая IP вместо localhost и добавляя порт к имени сервера. Но у меня всегда возникает одна и та же ошибка, и я не знаю, что делать дальше.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Строка подключения командной строки для обновления основной базы данных EF
Anonymous » » в форуме C# - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-