EF迁移无效

时间:2017-09-09 20:02:56

标签: .net-core entity-framework-core

我开始开发后端而不启用dotnet ef迁移。在.NET Core database model changes in production的帮助下,我设法在一段时间后开始使用迁移。

现在我的一个模型再次更改了,我想应用另一个迁移,这次不是通过脚本而是直接在带有_myContext.Database.MigrateAsync();的应用程序startup.cs中,我基本上将一个字段从myField重命名为myFieldId。 启动应用程序后,我可以看到关于日志条目

Applying migration '20170908221458_MyMigration'.  
Opening connection to database 'database' on server '(local)\INSTANCE'. 
Beginning transaction with isolation level 'Unspecified'. 
Executed DbCommand (119ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
DECLARE @var0 sysname;
SELECT @var0 = [d].[name]
FROM [sys].[default_constraints] [d]
INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id]
WHERE ([d].[parent_object_id] = OBJECT_ID(N'myTable') AND [c].[name] = N'myField');
IF @var0 IS NOT NULL EXEC(N'ALTER TABLE [myTable] DROP CONSTRAINT [' + @var0 + '];');
ALTER TABLE [myTable] DROP COLUMN [myField]; 
Executed DbCommand (23ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
ALTER TABLE [myTable] ADD [myFieldId] xml NOT NULL DEFAULT 0; 
Closing connection to database 'database' on server '(local)\INSTANCE'. 

看起来不错。但我的模型在数据库内没有改变! 此外,我的EFMigrationsHistory缺少一个新条目。因此,在下一个应用程序启动时,EF正在尝试再次应用迁移。这里有什么想法吗?

1 个答案:

答案 0 :(得分:1)

该死。我的错误是我没有在本地为我的上下文执行dotnet ef database update,而只是dotnet ef migrations add