2009-05-11 16 views
8

Sto appena iniziando un progetto in ASP.Net MVC con LINQ alle entità e mi chiedevo se esistesse un modo bello e pulito di definire i modelli che crea le tabelle appropriate nel database per me. Sono più familiare con Django (in termini di framework MVC) e sto cercando l'equivalente .Net di models.py così posso avere tutto versione. Qualche idea? Sarebbe ancora meglio se avesse qualche forma di migrazione dello schema, una evoluzione del django e simili.Creazione di modelli in ASP.NET MVC

risposta

6

Penso che quello che vuoi fare è girare la domanda. Le entità possono essere generate automaticamente dal database, quindi il problema è semplicemente utilizzare un meccanismo .NET per mantenere lo schema del database. Dato che non stai usando NHibernate, che queste altre soluzioni richiedono, ti suggerirei di usare MigratorDotNet. MigratorDotNet utilizza esattamente la stessa idea come Ruby on Rails migrazioni:

  1. Il database tiene traccia della sua versione
  2. Ogni volta che si desidera modificare lo schema, si scrive una piccola classe per gestire l'aggiornamento (e, opzionalmente , downgrade)
  3. assegnare queste classi un ordine di esecuzione
  4. Se il database è mai non è up-to-date, eseguire semplicemente metodi di aggiornamento delle classi al fine

Dal momento che sarete Regen solo erating your Entities in fase di compilazione, ti consiglio di eseguire gli script di migrazione e quindi di rigenerare le tue entità come parte del processo di compilazione. MigratorDotNet viene già fornito con an MSBuildTarget, aggiungendo solo un paio di clic.

1

Un'altra opzione è utilizzare NHibernate con FluentNhibernate che eseguirà la mappatura automatica del modello in base alle convenzioni. Puoi anche sostituire una mappatura per adattarla alle tue esigenze.

Problemi correlati