使用Entity Framework 5和nuget重新创建表

Jam*_*lms 16 entity-framework nuget ef-migrations

我正在使用Code First创建一个表.

我创建了类,映射文件并在nuget中发出了add-migration命令,然后是update-database命令

然后我改变了课程,就像一个白痴删除了桌子.

我删除了迁移类文件

我发出了一个add-migration命令

当我发出update-database命令时,我收到以下错误:

System.Data.SqlClient.SqlException(0x80131904):找不到对象"dbo.CorrectiveActionPlan",因为它不存在或您没有权限.在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolean breakConnection,Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔callerHasConnectionLock,布尔asyncClose)的System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean&)中的1 wrapCloseInAction) dataReady)在System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName,Boolean async,Int32 timeout),System.Data.SqlClmand.SmandCommand.InternalExecuteNonQuery(TaskCompletionSource 1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at System.Data.Entity.Migrations.DbMigrator.ExecuteSql(DbTransaction transaction, MigrationStatement migrationStatement) at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ExecuteSql(DbTransaction transaction, MigrationStatement migrationStatement) at System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable1 migrationStatements),位于System.Data.Entity.Migrations.Infrastructure.MigratorBase. ExecuteStatements(IEnumerable的1 migrationStatements) at System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, XDocument targetModel, IEnumerable在System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(DbMigration migration,DbMigration lastMigration)上的System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration migration,DbMigration lastMigration)中的1个操作,布尔降级,布尔自动) System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable 1 pendingMigrations,String targetMigrationId,String lastMigrationId)1 pendingMigrations, String targetMigrationId, String lastMigrationId)
at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable

在System.Data.Entity.Migrations.Migrations.Migrations.Migrations.ToolingFacade.UpdateRunner.RunCore上的System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration)中的System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)处()at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()ClientConnectionId:a6e92a35-cc9e-4867-97a5-0a274081d853找不到对象"dbo.CorrectiveActionPlan",因为它不存在或者你没有权限.

如何强制EF重新创建表格?

Jam*_*lms 33

我找到了答案.

我删除了[dbo].[__ MigrationHistory]中与我的Migration相对应的行

然后我删除了新的迁移文件

我重新运行了添加迁移

然后重新运行update-database -verbose