尝试使用实体框架进行更新时,数据库中已有一个名为“AspNetRoles”的对象

问题描述:

尝试使用实体框架进行更新时,我收到了此错误与我的ApplicationDbContext数据库。我搜索了一下,试图在这里修复,但都无济于事。目前,我只是在每次进行更改时删除数据库,但是一旦部署完毕,这不会成为选项。
这里的错误:尝试使用实体框架进行更新时,数据库中已有一个名为“AspNetRoles”的对象

PM> update-database -context applicationdbcontext System.Data.SqlClient.SqlException: There is already an object named 'AspNetRoles' in the database. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource 1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, String executeMethod, IReadOnlyDictionary 2 parameterValues, Boolean closeConnection) at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary 2 parameterValues) at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection) at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_1.<.ctor>b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action) ClientConnectionId:b2628a7e-7024-471e-9be2-2d0b25f3ad3c Error Number:2714,State:6,Class:16 There is already an object named 'AspNetRoles' in the database.

我还没有在我的代码中使用context.Database.EnsureCreated()任何地方。

最快的解决方法是:

  • 删除迁移文件夹
  • 删除数据库
  • 启用的迁移
  • 添加初始迁移
  • 更新数据库
+1

这就是我”已经做了,但删除数据库不会是一个可行的解决方案一旦我启动我的应用程序。 –