![](/img/trans.png)
[英]Compare List to Database records, if exists - update, if new - create (EF Core)
[英]EF Core create a new database with username password
跑步的时候可以吗
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 outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1 retry, DbConnectionOptions userOptions) at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
1 retry) 在 Microsoft.Data.SqlClient.SqlConnection.Open()在 Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected) 在 Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) 在 Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass18_0.b__0(DateTime giveUp) at 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 operation, Func3 verifySucceeded) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, Func
3 verifySucceeded) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, Func
2 操作,Func2 verifySucceeded, TState state)
at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func2 verifySucceeded, TState state)
at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func2 verifySucceeded, TState state)
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(String targetMigration) 在 Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType) 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String contextType) 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0() 在 Microsoft.EntityFrameworkCore.Design .OperationExecutor.OperationBase.Execute(动作动作 ion) ClientConnectionId:fc9fb778-b6e7-4276-a454-f627ca974133 错误号:18456,State:1,Class:14 用户“用户”登录失败。
at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func
当你执行
dotnet ef database update
您正在告诉 EF 执行迁移并更新数据库,但您无法连接到数据库,因为您使用的用户和密码不存在。 所以你可以用ef创建一个数据库(当你执行第一次迁移时,如果数据库不存在,ef会创建它),但是你不能通过connectionstring创建一个新的用户和密码。
更多信息: https://docs.microsoft.com/en-us/ef/core/get-started/?tabs=netcore-cli#create-the-database
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.