Cet article n'est pas destiné à être un guide sur l'utilisation des migrations EF. Il n'y aura aucune information sur la façon de les créer ici. Ici, j'ai collecté quelques points glissants et des tentatives pour les contourner. Commençons!
Lancer les migrations au lancement de l'application
Connaissez-vous le code suivant?
context.Database.Migrate();
Si tel est le cas, vous effectuez très probablement les migrations automatiquement au début du projet. Bon ou mauvais, vous pouvez en discuter dans les commentaires. Je tiens à mon tour à mettre en garde contre ce qui suit.
cmd, PS , , 2 : . - , . - , (sln). .
? , ( ) . , , , , , , . ? , . , , , , , Remove-Migration, , , . , , Remove-Migration. , , ?
, 2 :
.
, . .
-, :
, .
, , .
, Remove-Migration. , . Remove-Migration (csproj). , , , Git ( ) .
, ( ). csproj .
SQL
, , (, , - ) SQL . Script-Migration. . . .
EF Core 3.0 Script-DbContext .
, , , , SQL .
Nute ici, semble-t-il, est simple. Nous sommes essentiellement en train de changer quelque chose, de créer des migrations et de nous réjouir du résultat. Cependant, le résultat peut être inattendu lorsque vous devez supprimer un champ et en créer un autre du même type. Dans ce cas, le migrateur créera une commande pour renommer la colonne dans la base de données. Toutes les données de la colonne supprimée, respectivement, seront transférées vers la nouvelle. Dans ce cas, vous pouvez créer 2 migrations: pour supprimer une colonne et en créer une nouvelle. Après cela, afin que 2 migrations ne se profilent pas au lieu d'une, vous pouvez combiner leurs codes Haut et Bas et supprimer le dernier.
Conclusion
En conclusion, je veux dire, soyez attentif aux données, vérifiez les nouvelles migrations, pensez-y, n'ayez pas peur de les éditer. Et vous marcherez toujours sur n'importe quel râteau non évident lorsque vous travaillerez avec EF.