2009-05-11 24 views
8

Estoy empezando un proyecto en ASP.Net MVC con LINQ to Entities y me preguntaba si había una forma clara y agradable de definir modelos que creen las tablas apropiadas en la base de datos para yo. Estoy más familiarizado con Django (en términos de frameworks MVC) y estoy buscando el equivalente .Net de models.py para poder tener todo versionado. ¿Algunas ideas? Sería aún mejor si tuviera alguna forma de migración de esquema, a la django-evolution y similares.Creación de modelos en ASP.NET MVC

Respuesta

6

Creo que lo que quieres hacer es dar vuelta la pregunta. Las entidades se pueden generar automáticamente a partir de la base de datos, por lo que el problema es simplemente usar un mecanismo .NET para mantener el esquema de la base de datos. Como no está utilizando NHibernate, que estas otras soluciones requieren, le sugiero que use MigratorDotNet. MigratorDotNet usa exactamente la misma idea que Ruby on migraciones Rieles:

  1. Su base de datos realiza un seguimiento de su versión
  2. Cada vez que desee cambiar el esquema, se escribe una pequeña clase de gestionar la actualización (y, opcionalmente , rebaja)
  3. asignar estas clases de una orden de ejecución
  4. Si la base de datos es cada vez no estén al día, simplemente ejecutar métodos de actualización de las clases con el fin

Dado que sólo se le Regen Al momento de compilar sus Entidades en el momento de la compilación, le recomiendo que ejecute los scripts de migración y luego regenere sus entidades, como parte de su proceso de compilación. MigratorDotNet ya viene con an MSBuildTarget, agregando que solo implicará un par de clics.

1

Otra opción es usar NHibernate con FluentNhibernate que correlacionará automáticamente su modelo en función de las convenciones. También puede anular un mapeo para modificarlo según sus necesidades.

Cuestiones relacionadas