Code First ne convient pas aux applications à grande échelle. Le délai de développement des applications à grande échelle est très énorme.
En règle générale, le cycle de vie de votre application d'entreprise est comme,
- La version 1 est en production
- La version 2 est en beta
- La version 3 est en développement actif
- La version 4 est en cours de planification.
Et il existe d'autres ponts de communication inter-applications, certaines tâches planifiées, une intégration tierce partie, des services Web pour différents appareils communicants tels que le mobile, etc.
Finalement, Code First utilise ObjectContext d'Entity Model, les anciens EF générant EDMX et utilisant ObjectContext avec EntityObject étaient vraiment suffisants pour tout. Vous pouvez facilement personnaliser le modèle de texte pour générer du code. La méthode Détecter les changements est plus lente avec l'implémentation d'ObjectContext, mais au lieu de générer un proxy, l'équipe EF aurait pu facilement améliorer la vitesse de détection des changements au lieu de réinventer le code en premier.
Migration automatisée
La migration automatisée semble bonne en théorie, mais impossible en pratique une fois que vous êtes en ligne. C'est seulement bon pour le prototypage, en développant quelques démos rapides.
Code First Migration n'est pas du tout approprié dans un tel système. Les versions 1 et 2 parlent probablement à la même base de données. La version 3 et la version 4 sont généralement intermédiaires et ont une base de données différente.
Base de données d'abord
Database First est une approche pratique, il est facile de comparer et de visualiser et de maintenir des scripts SQL. Les DBA peuvent fonctionner facilement.
Modèles de texte
Nous avons créé nos propres modèles de texte pour interroger et créer EDMX et ObjectContext avec peu d'implémentation personnalisée qui résout les problèmes de performances. Il existe plusieurs applications avec plusieurs versions communiquant sans problème avec la même base de données.
Pour moi, faire un clic droit sur le fichier .tt et cliquer sur "Exécuter l'outil personnalisé" est de loin l'étape la plus rapide et la plus simple, puis écrire des classes, configurer et créer un modèle.