0

私が実行しているプロジェクトのタイムシート情報を処理する小さな MVC アプリケーションを作成しています。ホストされ、UI/サービス/データ レイヤーで設計しています。私が悩んでいることの 1 つは、すべてのレイヤーで Entity Framework モデルを使用できるかということです。まあ、できると思いますが、そうすべきですか?

すべてのレイヤーは同じマシンでホストされます (おそらく実際の DB を除く..)。ただし、すべてのレイヤーで EF モデルにアクセスするということは、UI を含むすべてのレイヤーが DB レイヤーへの参照を必要とすることを意味し、サービスをバイパスします。

これは安全な動きですか?

たぶん、EF からモデルだけを抽出し、それらだけを共有ライブラリの形式でレイヤー間で共有できますか?

または、弾丸をかじって、DTO とトランスレータを実装する必要がありますか? そう:

DATABASE->EF->TranslaterToDTO->BusinessLogic->ServiceLayer->UI(TranslaterTOViewModel)->View

4

1 に答える 1

0

実際、EF モデルビジネス モデルです。

EF は、DB モデルとビジネス モデル ( MSLCodeFirst の場合は EDMX またはEntityMappingクラスの一部) の間のマッピングを既に処理しています。

MVC アプリケーションを構築するとすぐに、View Model が必要になります。リクエストが Contoller メソッドに到達すると、View に返されるモデルは ModelBuilder によって構築される必要があります。ビジネス サービスを呼び出すのは、ModelBuilder 次第です。そのサービスは、ModelBuilder が適切な ViewModel にマップするビジネス モデルを返します。ModelBuilder の操作方法を説明している
this SO answerをご覧ください。

于 2013-07-01T10:21:01.047 に答える