使用Entity Framework更新时,在数据库中已经存在名为'AspNetRoles'的对象

6
当我试图使用Entity Framework进行更新时,我的ApplicationDbContext数据库出现了这个错误。我在谷歌上搜索过并尝试了一些SO上的解决方法,但都没有成功。目前,每次更改后我只能删除我的数据库,但一旦部署,这将不是一个选项。
以下是错误信息:
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, Action1 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(TaskCompletionSource1 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, IReadOnlyDictionary2 parameterValues, Boolean closeConnection) at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary2 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个回答

0
最快的解决方案是:
  • 删除迁移文件夹
  • 删除数据库
  • 启用迁移
  • 添加初始迁移
  • 更新数据库

7
这就是我一直在做的,但是一旦我推出我的应用程序,删除数据库将不再是可行的解决方案。 - brad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接