2017-09-09 4 views
1

J'ai commencé à développer un backend sans activer les migrations dotnet ef. J'ai réussi à commencer à utiliser les migrations après un certain temps avec l'aide de .NET Core database model changes in production.La migration EF n'a aucun effet

maintenant un de mes modèles ont changé à nouveau et je voulais appliquer une autre migration, cette fois non pas par le script, mais directement dans les applications startup.cs avec _myContext.Database.MigrateAsync(); où je fondamentalement changé le nom d'un champ myField-myFieldId. Après le démarrage de l'application, je peux voir les entrées du journal en ce qui concerne

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'. 

qui sont à la recherche de bien. Mais mon modèle n'a pas changé à l'intérieur de la base de données! En outre, mon EFMigrationsHistory manque une nouvelle entrée. Ainsi, au démarrage de l'application suivante, EF tente à nouveau d'appliquer la migration. Des idées quoi de mal ici?

Répondre

1

damn. Mon erreur était que je n'ai pas fait un dotnet ef database update pour mon contexte localement, mais juste le dotnet ef migrations add.