Code First no es adecuado para aplicaciones a gran escala. El cambio en el desarrollo de aplicaciones a gran escala es muy grande.
Por lo general, el ciclo de vida de su aplicación comercial es,
- La versión 1 está en producción.
- La versión 2 está en beta
- La versión 3 está en desarrollo activo
- La versión 4 está en planificación.
Y hay otros puentes de comunicación entre aplicaciones, algunas tareas programadas, alguna integración de terceros, servicios web para algunos dispositivos de comunicación diferentes, como dispositivos móviles, etc.
Finalmente, Code First usa ObjectContext de Entity Model, EF más antiguo que genera EDMX y usar ObjectContext con EntityObject fue realmente suficiente para todo. Puede personalizar fácilmente la plantilla de texto para generar código. El método de detección de cambios es más lento con la implementación de ObjectContext, pero en lugar de generar proxy, el equipo de EF podría haber mejorado fácilmente la velocidad de detección de cambios en lugar de reinventar el código primero.
Migración Automatizada
La migración automatizada suena bien en teoría, pero imposible en la práctica una vez que se pone en marcha. Solo es bueno para la creación de prototipos, desarrollando algunas demostraciones rápidas.
Code First Migration no es en absoluto adecuado en dicho sistema. La versión 1 y la versión 2 probablemente hablan con la misma base de datos. La versión 3 y la versión 4 suelen estar preparadas y tienen una base de datos diferente.
Base de datos primero
Database First es un enfoque práctico, es fácil de comparar, visualizar y mantener secuencias de comandos SQL. Los DBA pueden trabajar fácilmente.
Plantillas de texto
Creamos nuestras propias plantillas de texto para consultar y crear EDMX y ObjectContext con poca implementación personalizada que aborde problemas de rendimiento. Existen múltiples aplicaciones con múltiples versiones que se comunican a la misma base de datos sin ningún problema.
Para mí, hacer clic derecho en el archivo .tt y hacer clic en "Ejecutar herramienta personalizada" es, con mucho, el paso más rápido y fácil que escribir clases, configurar y crear modelos.