C# 如何跳过ef core中的一些迁移?

C# 如何跳过ef core中的一些迁移?,c#,entity-framework,asp.net-core,entity-framework-core,entity-framework-migrations,C#,Entity Framework,Asp.net Core,Entity Framework Core,Entity Framework Migrations,我的ef环境发生了一些变化,我增加了新的偏头痛 dotnet ef migrations add changed98112601 然后我运行下面的命令 dotnet ef database update 我有以下输出。似乎您希望应用初始迁移。Poems表位于数据库中,因为它是通过应用初始迁移创建的。我应该如何防止这种情况?当我想要更新时,我应该如何跳过初始迁移 Build started... Build succeeded. Applying migration '201912251331

我的ef环境发生了一些变化,我增加了新的偏头痛

dotnet ef migrations add changed98112601
然后我运行下面的命令

dotnet ef database update
我有以下输出。似乎您希望应用初始迁移。Poems表位于数据库中,因为它是通过应用初始迁移创建的。我应该如何防止这种情况?当我想要更新时,我应该如何跳过初始迁移

Build started...
Build succeeded.
Applying migration '20191225133128_Initial'.
Failed executing DbCommand (159ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE [Poems] (
    [Id] int NOT NULL IDENTITY,
    [Number] int NOT NULL,
    [Meaning] nvarchar(max) NULL,
    CONSTRAINT [PK_Poems] PRIMARY KEY ([Id])
);
Microsoft.Data.SqlClient.SqlException (0x80131904): There is already an object named 'Poems' in the database.
   at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) in E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\SqlConnection.cs:line 1591
   at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) in E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\SqlInternalConnection.cs:line 618
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) in E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\TdsParser.cs:line 1169
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) in E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\TdsParser.cs:line 1719
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean isAsync, Int32 timeout, Boolean asyncWrite) in E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\SqlCommand.cs:line 2857
   at Microsoft.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String methodName) in E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\SqlCommand.cs:line 1395
   at Microsoft.Data.SqlClient.SqlCommand.ExecuteNonQuery() in E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\SqlCommand.cs:line 974
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.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.UpdateDatabaseImpl(String targetMigration, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
ClientConnectionId:b1027e70-d231-407a-87a0-5b53d06d2782
Error Number:2714,State:6,Class:16
There is already an object named 'Poems' in the database.
已开始生成。。。
构建成功。
正在应用迁移“2019122513128_Initial”。
执行DbCommand失败(159ms)[参数=[],命令类型='Text',命令超时='30']
创建表格[诗歌](
[Id]int不是空标识,
[Number]int不为空,
[意思]nvarchar(最大值)为空,
约束[PK_]主键([Id])
);
Microsoft.Data.SqlClient.SqlException(0x80131904):数据库中已存在名为“Poems”的对象。
在E:\agent1\\ U work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\SqlConnection.OnError(SqlException异常,布尔断开连接,Action`1 wrapCloseInAction)中
在E:\agent1\\u work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\Data\SqlClient\SqlInternalConnection.OnError(SqlException异常,布尔断开连接,Action`1 wrapCloseInAction)中
在E:\agent1\\u work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\SqlClient\TdsParser.cs第1169行中的Microsoft.Data.SqlClient.TdsParser.throweexception和warning(TdsParserStateObject stateObj,布尔调用连接锁,布尔异步关闭)
在E:\agent1\\ U work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\SqlDataReader-dataStream,BulkCopySimpleResultSet-bulkCopyHandler,TdsParserStateObject-StateObjectStateObjectStateObj,Boolean&dataReady中的Microsoft.TryRun(运行行为运行行为,SqlCommand-cmdHandler,SqlDataReader-dataStream,bulkCopyHandler,bulkCopyHandler,TDSpareResult-StateObject-State
在E:\agent1\\u work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\Data\SqlClient\SqlCommand.runexecutenonqueryds(字符串方法名,布尔值isAsync,Int32超时,布尔值asyncWrite)中的Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\SqlCommand.cs:第2857行
在E:\agent1\\ U work\34\s\src\Microsoft.Data.SqlClient.InternalExecuteNonQuery(TaskCompletionSource`1 completion,Boolean sendToPipe,Int32 timeout,Boolean&usedCache,Boolean asyncWrite,Boolean inrry,String methodName)中的E:\agent1\\ uwork\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\SqlClient\SqlCommand.cs:第1395行
在E:\agent1\\ U work\34\s\src\Microsoft.Data.SqlClient\netcore\src\Microsoft\Data\Data\SqlClient\SqlCommand.cs中的Microsoft.Data.SqlClient.SqlCommand.ExecuteNonQuery()处:第974行
位于Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteOnQuery(RelationalCommandParameterObject parameterObject)
位于Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteOnQuery(IRelationalConnection连接,iRelationalYDictionary`2参数值)
位于Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecutionQuery(IEnumerable`1 migrationCommands,IRelationalConnection)
位于Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(字符串targetMigration)
位于Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration,String contextType)
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(字符串targetMigration,字符串contextType)
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.c__DisplayClass0_0.b_0()中
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作)
客户连接ID:b1027e70-d231-407a-87a0-5b53d06d2782
错误号:2714,状态:6,类别:16
数据库中已存在名为“Poems”的对象。

看起来您正在更新数据库,并且数据库中已经有一个对象Poems。是的。Poems表在数据库中。因为它是通过应用初始迁移创建的。Poems表也是dotnet ef迁移的一部分吗?您可以手动将该迁移添加到_EFMigrationsHistory表中吗?您尝试过这个吗?您可以在
Migrations/
文件夹下更改迁移文件中生成的代码:删除
CreateTable(名称:'Poems',…)
Up()
方法的相关代码。注意:如果要执行此操作,请在以后手动更改数据库时同步更改。