0

したがって、私のsqlexpress08データベース用にEntityFramework4によって生成されたDataEntityクラスがあります。このデータコンテキストは、WCF Data Service/Odataを介してSilverlightおよびWinフォームクライアントに公開されます。ここでは、EFエンティティとデータアノテーションをasp.net mvc +エンティティフレームワークプロジェクトに配置する必要があります

データエンティティ+ edmxファイル(EF4で生成)は別のクラスライブラリに入れる必要がありますか?

ここで問題となるのは、いくつかのエンティティのデータ注釈を指定し、その中にはCompareAttributeなどの特定のMVC属性が必要なため、クラスライブラリがmvc dllも参照するためです。また、エンティティユーザーがWebサイトのIIdentityにカプセル化またはラップされることもあります。だからかなりmvcのウェブサイトに結びついています。 それは多分mvcプロジェクト自体のBaseフォルダに入るべきですか?

ほとんどの場合、ウェブサイトは、ユーザーの承認、グローバル設定の変更など、データベースを中心としたデータ駆動型です。実際のビジネスは、SilverlightやWinフォームアプリケーションで発生します。

mvc3 rc2とRazorを使用しています。 (EF4によって生成された)データ・エンティティ+ EDMXファイルが別のクラスライブラリに
おかげ

答えて

5

に行くべきでしょうか?

IMHO一部のデータアクセステクノロジ(あなたの場合はEntity Framework)に固有のすべてのデータアクセスロジックは別のアセンブリに移動する必要があります。 MVC固有のアセンブリはそこに参照されるべきではありません。

ASP.NET MVCアプリケーションでは、このアセンブリを参照し、ビューモデルを作成します。これはMVC固有の属性を含むビューモデルです。次に、モデルクラスとビューに渡されるビューモデルをマップすることができます。この作業を容易にするためにAutoMapperを使用することができます。

+0

私はこれまでにこれについて聞いたことがあります。もう1つの質問ですので、私のMVCプロジェクトでは、私は 'IRepository' ..のようなものがあります。実装はエンティティオブジェクトを照会してから、** ViewModels **を返します。 – gideon

+1

@ giddy、IRepositoryはビューモデルを返さないでください。ドメインモデルで動作するはずです。これらのドメインモデルとビューモデルの間のマッピングは、コントローラによって実行される必要があります。あなたのMVCアプリケーションではなく、データアクセスレイヤーに適しています。 –

+0

ああ!私はしばらく時間を取ったが、私はそれを得た!ボーナスポイント! = D – gideon

関連する問題