here MVC3 and Entity Frameworkで提案されているデザインに従って、MVC4 + EntitiFramework5 を使用して、DAL、BL、および Web 用のさまざまなレイヤーを作成しようとしています。
@David Pirasからの引用
1 - ProjectName.Interfaces (クラス ライブラリ、エンティティのインターフェイス);
2 - ProjectName.DAL (クラス ライブラリ、EF が使用されていることを知ることができる唯一のライブラリ、POCO エンティティは、部分クラスを使用して同じオブジェクトを再宣言する別のファイルを使用してプロジェクト 1 のインターフェイスを実装します...);
3 - ProjectName.BL (クラス ライブラリ、ビジネス ロジック、上記 1 と 2 の 2 つのプロジェクトを参照);
4 - ProjectName.Web (ASP.NET MVC アプリケーション、プレゼンテーション層、2 つのプロジェクト 1 と 3 を参照しますが、2 は参照しません)。
BLとDALの関係に疑問があります。DAL は EF を知っていますが、BL はそうではありません..しかし、それを実装する方法は? つまり、両方のレイヤーでエンティティを表すクラスを作成しました (そして、これは少し重複しているように思えます.. BL で検証やその他のサットフを追加しても)、データベースの値を BL に公開する方法?
私が持っているデフォルトのMVC4ソリューションで
DbSet<Entity> entity
クエリできること (.Find など) .. BL でそれらをマップする必要があると思います (IQueryable? IEnumerable? Isomething??)
完全に混乱しています..何か助けていただければ幸いです