私はDAL(データアクセスレイヤー)、BLL(ビジネスロジックレイヤー)、プレゼンテーションレイヤー(通常はASP.NET Webアプリケーション)を使用するセットアップでEF4.1を使用しようとしています。またはコンソールアプリケーションかもしれません)。マルチレイヤーアプリケーションのエンティティフレームワーク
現在、私はすべてのプロジェクトをLINQ to SQLを使用して行い、上記で説明したように複数のレイヤーを使用する設定をしています。
すべての例がDALとBLLを使用する完全な例を見つけるのは難しいですが、1つの層または多分2つの層を使用するように見えますが、EFを見ると、
私が現時点で望むところに最も近いのは、POCOコードジェネレータを使用してPOCOクラスを作成し、これらのクラスをBLLプロジェクトに再配置することです。また、.edmxとオブジェクトコンテキストはそのまま残りますDAL。
しかし、DALはPOCOクラスについて知っておくために、DLLがBLLへの参照を必要とします。理想的に言えば、参照は逆になります。 DALにBLLへの参照がある場合は、BLLからDALへの参照もありません。循環参照はできないため、bllからsave changesメソッドを呼び出すようなオブジェクトコンテキストでは何もできません。
とにかく私はそれですべての混乱の少しを持っている。
私は、EFエンティティオブジェクトがDALにとどまり、私自身のBLLクラスを書いているだけで、別の方法(私がLINQ to SQLで現在行っているのと同じようなこと)をすることを検討しています。 DALオブジェクトのカウンターパーツ。そうすれば、DALはBLLとBLLへの参照を持つことができます。
申し訳ありませんが長い質問ですが、人々の考えに感謝しています。私は実際にEFについて何度も読んだことがありますが、それが多層アプローチでどのように機能するか見るためには苦労しています。
私たちは同じアプローチを取っています。 EFを使用している場合、別のDALに値が表示されません。 –