J'ai commencé à étudier les migrations d'Entity Framework sur 4.3.1. Vous avez quelques questions:Pourquoi utiliser Entity framework Migrations
Qu'est-ce qui est préféré pendant le développement? Pourquoi ne devrais-je pas simplement laisser tomber et recréer ma base de données toujours puis reseed. Si j'utilise les premières migrations de code, est-ce que je peux choisir de commencer par initialiser ma base de données puis d'ajouter une méthode de départ à chaque migration pour ajouter uniquement de nouvelles données? Si j'utilise les migrations automatiques, est-il possible de faire quelque chose de similaire? c'est-à-dire ensemencer initialement et ensuite graine selon les besoins?
Quel est l'avantage d'utiliser les migrations pendant le développement? J'ai seulement besoin de migrations lors du passage à la production. Donc, j'ai besoin de créer mon script initial et ensuite des scripts pour chaque migration, donc serait-il possible d'utiliser seulement les migrations une fois que je veux passer à la production et à ce moment créer un script initial et maintenir un historique de migration de ce point en avant?
Merci! cela semble être une fonctionnalité intéressante, je suis juste réticent à utiliser les migrations dans mon environnement de développement car il exécute la méthode seed à chaque mise à jour pour que mes données soient dupliquées. Je pourrais utiliser AddorUpdate mais d'après ce que j'ai lu qui semble venir avec ses propres problèmes, c'est pourquoi il semble être le plus facile et le plus sûr de laisser tomber et recréer. Ce serait génial si nous pouvions désactiver la méthode d'amorçage ou avoir plusieurs méthodes d'amorçage à chaque migration. Je suppose qu'un moyen de contourner cela est d'ajouter Sql (insérer) dans mes fichiers de migration ... mais alors mes données de départ ne sont pas dans un seul endroit, peu en désordre –
Ouais, c'est en effet agaçant. Nous l'avons résolu rapidement en vérifiant d'abord si un certain enregistrement (qui serait normalement ensemencé) était déjà présent dans la DB et si c'est le cas, abandonner le semis. D'après ce que je lis dans d'autres publications, il est parfaitement possible de semer de façon incrémentielle si vous utilisez des migrations manuelles. Il est possible de désactiver l'amorçage: ne mettez aucun code dans votre méthode seed :-) –
Vous pouvez utiliser la méthode AddOrUpdate() qui fournit un moyen simple de le faire :) – Ross