2009-05-11 21 views
8

LINQ to Entitiesを使用してASP.Net MVCでプロジェクトを開始しています。データベースに適切なテーブルを作成するためのモデルを定義するうえで、すばらしいクリーンな方法があるのだろうかと思いました私。私はDjango(MVCフレームワークの面で)に最も精通しており、models.pyの.Net相当版を探しているので、バージョン管理されたものをすべて持つことができます。何か案は?スキーマ移行、ラ・ジャンゴ・エボリューションなどの何らかの形をしていればさらに良いでしょう。ASP.NET MVCでモデルを作成

答えて

6

あなたがしたいことは、質問を回すことだと思います。エンティティはデータベースから自動的に生成されるため、.NETメカニズムを使用してデータベーススキーマを維持するだけです。これらの他のソリューションが必要とするNHibernateを使用していないので、MigratorDotNetを使用することをお勧めします。 MigratorDotNetはRailsのマイグレーションにルビーとまったく同じ考えを使用しています。

  1. あなたのデータベースを使用して、スキーマを変更したいたびにそのバージョン
  2. を追跡し、あなたは、必要に応じて、アップグレードを処理するために、小さなクラスを作成(およびデータベースは、これまで最新でない場合は、ダウングレード)
  3. はあなただけレーゲンされますので、単純に順番

のクラスアップグレード方法を実行し、これらのクラスに実行順序

  • を割り当てコンパイル時にエンティティを抹消すると、移行スクリプトを実行し、エンティティを再生成することをビルドプロセスの一部としてお勧めします。 MigratorDotNetには既にan MSBuildTargetが付属しており、数回クリックするだけで追加できます。

  • 0

    Castle Project active record is a nice way of doing it.

    の場合は、レールのアクティブなレコードにルビーに似た機能を提供しています。

    +0

    キャッスルプロジェクトは、LINQ to Entitiesではなく、NHibernateを使用していますか? –

    +0

    マイグレーションのような機能を望むなら、それは良い選択です – Konstantinos

    1

    もう1つの選択肢は、FluentNhibernateでNHibernateを使用することです。これは、規則に基づいてモデルを自動的にマップします。マッピングをオーバーライドして、必要に応じて調整することもできます。