运行时是否可能
dotnet ef database update
要使用新的用户名和密码创建数据库(如果不存在)?
例如,当我拥有appsettings.json时
"ConnectionStrings": {
"DefaultConnection": "Server=myserver;Database=mydatabase;user=user;password=password"
},
我希望它创建一个新数据库并使用指定的密码创建一个新用户。
但是当我运行dotnet ef database update
时,我会收到
Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection externalConnection,DbConnectionFactory connectionFactory, TaskCompletionSource
1 retry, DbConnectionOptions userOptions) at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
1 重试)在Microsoft.Data.SqlClient.SqlConnection.Open()在 Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(布尔 错误预期) Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(布尔 错误预期) Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator。<> c__DisplayClass18_0.b__0(DateTime 放弃) Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions。<> c__DisplayClass12_02.<Execute>b__0(DbContext c, TState s) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func
3操作,Func3 verifySucceeded) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, Func
2操作,Func2 verifySucceeded, TState state)
2操作) Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists(Boolean retryOnNotExists) Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists() 在Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists() 在 Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(字符串 targetMigration) Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration,字符串contextType)位于 Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration,字符串contextType)位于 Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase。<> c__DisplayClass0_0。<。ctor> b__0() 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作 操作)ClientConnectionId:fc9fb778-b6e7-4276-a454-f627ca974133错误 编号:18456,状态:1,类别:14用户“ user”的登录失败。
at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func
答案 0 :(得分:0)
执行时
dotnet ef database update
您要告诉EF执行迁移并更新数据库,但是由于您使用的用户名和密码不存在,您无法连接到数据库。 因此,您可以使用ef创建数据库(如果不存在该数据库,则在执行第一次迁移时,ef会创建该数据库),但是您无法通过连接字符串创建新的用户名和密码。
更多信息:https://docs.microsoft.com/en-us/ef/core/get-started/?tabs=netcore-cli#create-the-database