2009-05-11 7 views
8

Je commence juste un projet dans ASP.Net MVC avec LINQ to Entities et je me demandais s'il y avait une façon agréable et propre de définir des modèles qui crée les tables appropriées dans la base de données pour moi. Je suis plus familier avec Django (en termes de frameworks MVC) et je cherche l'équivalent .Net de models.py donc je peux avoir tout versionné. Des idées? Ce serait encore mieux s'il y avait une forme de migration de schéma, une évolution de la django et autres.Création de modèles dans ASP.NET MVC

Répondre

6

Je pense que ce que vous voulez faire est de retourner la question. Les entités peuvent être générées automatiquement à partir de la base de données. Le problème consiste simplement à utiliser un mécanisme .NET pour gérer le schéma de votre base de données. Puisque vous n'utilisez pas NHibernate, ce que ces autres solutions nécessitent, je suggère d'utiliser MigratorDotNet. MigratorDotNet utilise exactement la même idée que Ruby sur les migrations Rails:

  1. Votre base de données conserve la trace de sa version
  2. Chaque fois que vous souhaitez modifier le schéma, vous écrivez une petite classe pour gérer la mise à niveau (et, le cas échéant , déclassement)
  3. Attribuer ces classes un ordre d'exécution
  4. Si la base de données est toujours pas à jour, il suffit d'exécuter des classes de méthodes de mise à niveau pour

Puisque vous ne serez Regen En éradiquant vos Entités au moment de la compilation, je vous recommande d'exécuter les scripts de migration, puis de régénérer vos entités, dans le cadre de votre processus de construction. MigratorDotNet est déjà livré avec an MSBuildTarget, ajoutant que cela impliquera juste quelques clics.

1

Une autre option consiste à utiliser NHibernate avec FluentNhibernate qui mappera automatiquement votre modèle en fonction des conventions. Vous pouvez également remplacer un mappage pour le modifier selon vos besoins.

Questions connexes