1

こんにちは、Entity Framework 4 を使用して N-Teir Web サイトを作成するタスクを与えられましたが、私の知る限り、いくつかのレンガの壁に直面しています。

これまでの私の計画は、これらのレイヤーを持つことでした

Web サイト (アプリケーション層)、
Name.Framework (BLL)、
Name.Data (DAL)、
Name.Entities (Web サイト/bll で使用される POCO クラスおよびその他の構造体クラスを含む)、
Name.Common (ユーティリティ クラス)

リポジトリ クラスを使用しようとしましたが、思ったように機能させるのに苦労しています。以下は、私が行き詰まっているもののいくつかの例です。

.include() を使用したい場合、これは私のリポジトリにあるのでしょうか、それともビジネス層の責任ですか? (そして、これがBLLでどのように機能するかわかりません)

.Order() についても同じ質問ですか? 私が理解したように、これはリポジトリにある必要があるか、少なくとも何らかの方法でリポジトリに渡される必要があります?!?

BLL を使用してコンテキストをリポジトリ/データ層に渡す必要がありますか? データレイヤーからエンティティを取得した時点で、レポで参照されていないナビゲーションプロパティは「オブジェクトコンテキストが破棄されました」で戻ってきますが、ビジネスレイヤーはコンテキストなどを保持して、これが起こらないようにする必要がありますか?

または、このヘルプを要約すると!!!

明日までに何らかの順序でこれを用意する必要があります (eek!) プロジェクト リーダーは、Entity Framework を続行するか、社内で NHibernate に移行するかを知りたがっています。

助けや提案をありがとう マット

4

3 に答える 3

1

自分で似たようなものを探していると、これが見つかりまし。現時点ではあまり検討されていませんが、有望に見えます。

于 2011-02-08T09:02:50.607 に答える
1

私は現在、次の構造を持つ EF4 Code-Only を使用した Web ホビー プロジェクトに取り組んでいます ([name] は私のプロジェクトの名前です)。

  • [name].Web - ASP.NET MVC 2 プロジェクト
  • [name].Web.Models - カスタム ビュー モデルと、エンティティ オブジェクトからの AutoMapper マッピング
  • [name].Models - 私の POCO クラス、およびリポジトリのインターフェース
  • [name].DataAccess - データ アクセスに関連するいくつかのインターフェイス。IUnitOfWork
  • [name].DataAccess.EF - Entity Framework 関連のすべてのクラスとインターフェイス

また、上記のそれぞれのテスト プロジェクトと、テスト用のヘルパーと拡張機能を備えたいくつかのプロジェクトもあります。

この趣味のプロジェクトの目的の一部は、私が選択したデザイン パターンで EF4 を使用する方法を学ぶことであることに言及することは適切かもしれません (このプロジェクトで EF に関係するのは、リポジトリ パターンと作業ユニットです)。パターン)。もう 1 つの部分的な目的は、後のプロジェクトで再利用できるコード ベースを構築することです。これは、アプリケーションのプロジェクト間の分割に影響を与えました。たとえば、再利用に関心がなければ、おそらく2 つではなく 1 つのプロジェクトにすべてのデータ アクセス関連のクラスがあります。

于 2010-04-12T15:24:41.107 に答える
0

私は基本的な EF、poco、Repository、UnitOfWork アーキテクチャを実装しました。この記事は主に次のとおりです。

http://devtalk.dk/CommentView,guid,b5d9cad2-e155-423b-b66f-7ec287c5cb06.aspx

これらの取り組みにおいて、非常に役立つことがわかりました。役立つかどうかはわかりませんが、他の人がリンクに興味を持っている可能性があります。

于 2010-06-03T21:15:02.597 に答える