2 votes

EF Code First - Exécuter le traitement post-migration et le nettoyage

Je utilise Entity Framework 5.0 et j'ai implémenté des migrations personnalisées.

Une chose que j'aimerais faire est d'effectuer quelques calculs et tâches de nettoyage après qu'une migration spécifique soit complétée. Je sais que la méthode Seed() est utilisée pour la manipulation des données post-migration, mais elle s'exécute avec chaque migration. Je veux que cela s'exécute une seule fois après qu'une migration spécifique soit complétée.

Je voudrais le faire à l'intérieur de la migration personnalisée elle-même, mais les processus nécessitent que je récupère des ensembles de résultats et que je fasse des calculs dessus, etc. et j'aimerais le faire en C# si possible (pour utiliser notre système de traitement des tâches).

Quel est le meilleur moyen d'exécuter du code de traitement post-migration pour une migration spécifique?

1voto

Colin Points 5006

Je pense que vous pourriez cibler une migration spécifique en interrogeant la table __MigrationHistory. Mais cela me semble un peu fragile car vous pourriez vouloir recréer des migrations à un moment donné. Je pense que je préférerais déclencher le nettoyage en fonction d'autres critères.

Y a-t-il un moyen de détecter que les données sont "sales"? Ensuite, le nettoyage pourrait être déclenché au besoin. Si cela n'est pas possible, vous pourriez créer une table dans la base de données pour stocker des indicateurs indiquant quand un nettoyage est nécessaire. Vous pourriez définir l'indicateur dans la méthode Up() et le supprimer dans la méthode Down() lors d'une migration. Ensuite, vous pouvez vérifier l'indicateur dans la méthode Seed() et déclencher le nettoyage.

Je pense que ce sont de bons conseils pour les migrations Entity Framework

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X