Gestionar un proyecto grande usando un model de entidad única

En nuestra aplicación, estamos utilizando un model de entidad con primer enfoque de database y tenemos un esquema db en el server. También estamos usando git para la administración de control de fuente.

Los problemas ocurren cuando algunos de los desarrolladores estamos trabajando en nuevas funciones que requieren cambios en la database y eso sucede con frecuencia, por lo que nuestra solución en este momento es la siguiente:

  1. Crea una nueva twig desde la twig principal.
  2. Haga una nueva database para testings que sea igual a la que usamos en vivo.
  3. Cuando termine con la nueva transferencia de funcionalidad a la twig principal y la extraiga de la nueva, tome el nuevo model de entidad con el nuevo cambio de db y aplique el sql en nuestra database en vivo al hacer una publicación.

Los problemas ocurren si nos quedamos demasiado time en una nueva sucursal porque cambiamos mucho de sucursales.

En ese momento, nuestra twig maestra cambió mucho y también la database en vivo con ella, por lo que nuestra estructura de testing de db es muy diferente a la vez que creamos la nueva twig y luego tenemos problemas para fusionar nuestra nueva twig con la principal.

Lo hacemos con éxito todo el time, pero es difícil de manejar. Quiero saber si alguien conoce un mejor sistema de gestión y su flujo de trabajo.

Sí, esto pica. El file .edmx golpea constantemente los conflictos de combinación porque almacena datos de configuration de dominio y ubicaciones de objects de diseñador. (El primero debe estar controlado por fuente, el último debe estar en un file .user ). Agregue insulto a la lesión: el file está diseñado para no ser legible (solo administrado por una herramienta) por lo que es muy fácil fallar al fusionarlo. Fue esta razón la que nos hizo abandonar el .edmx ("database primero") y avanzar hacia Code First. Algunas testings unitarias cuidadosamente diseñadas que validan las classs de entidad coinciden con el esquema de la tabla y tenemos un flujo de trabajo mucho más simple.