2009-05-11 14 views
8

Właśnie zaczynam projekt w ASP.Net MVC z LINQ na Entities i zastanawiałem się, czy istnieje ładny, czysty sposób definiowania modeli, które tworzy odpowiednie tabele w bazie danych dla mnie. Jestem najbardziej obeznany z Django (pod względem frameworków MVC) i szukam odpowiednika .Net z models.py, więc mogę mieć wszystko wersjonowane. Jakieś pomysły? Byłoby jeszcze lepiej, gdyby miał jakąś formę migracji schematu, a la django-evolution i tym podobne.Tworzenie modeli w ASP.NET MVC

Odpowiedz

6

Myślę, że to, co chcesz zrobić, to zmienić to pytanie. Elementy mogą być automatycznie generowane z bazy danych, więc problem polega po prostu na użyciu mechanizmu .NET w celu utrzymania schematu bazy danych. Ponieważ nie używasz NHibernate, czego wymagają te inne rozwiązania, sugerowałbym użycie MigratorDotNet. MigratorDotNet wykorzystuje dokładnie ten sam pomysł jak Ruby on Rails migracje:

  1. Baza danych śledzi wersji
  2. każdym razem, gdy chcemy zmienić schemat, piszesz małą klasę do obsługi aktualizacji (i ewentualnie , downgrade)
  3. Przypisywanie tych klas rozkaz wykonania
  4. Jeśli baza danych jest nigdy nie up-to-date, po prostu wykonać metody uaktualnić klas w celu

Ponieważ będziesz zregenerować tylko w czasie kompilacji twoich jednostek, polecam uruchamiać skrypty migracji, a następnie regenerować twoje jednostki, jako część procesu kompilacji. MigratorDotNet jest już dostarczany z an MSBuildTarget, a dodanie go będzie wymagać tylko kilku kliknięć.

1

Inną opcją jest użycie NHibernate z FluentNhibernate, która automatycznie mapuje model na podstawie konwencji. Możesz także zastąpić mapowanie, aby dostosować je do swoich potrzeb.

Powiązane problemy