いくつかの機能を持つ WCF サービスを設計しています。
1. ProductDTO GetProduct ( Guid productId )
2. void SetProduct ( ProductDTO product )
3. List<ProductDTO> GetAllProducts()
4. void SetAllProductValues ( int newValue )
これらは、サービスがサポートする操作です。ビジネス層 (BL) とデータ アクセス層 (DAL) を用意します。
LINQ-TO-EF を ORM として使用して、SQL サーバー テーブルに接続します。
私の質問は - DAL には正確に何を含めるべきですか?
異なることを言っている2冊の本を読んだので、この質問をしています。
最初のアプローチ: DAL には、データ アクセス層に必要なクラスのみが含まれます (存在する場合)。そのための特別なエンティティまたは機能が含まれています。LINQ-TO-EF の EDMX とモデル ファイルは、別のアセンブリにあります (BL とサービス レイヤーによって参照されます)。このメソッドでは、BL に LINQ クエリを実行する実際の関数が含まれています。例: 「GetProduct」は、LINQ クエリを実行して DB からデータを抽出します。では、このアプローチでは、DAL には正確に何が含まれているのでしょうか? 空ですか?
2 番目のアプローチ: DAL には、DB で CRUD 操作を実行するための関数が含まれています。つまり、LINQ-TO-EF クエリはすべて DAL で実行されます。では、このアプローチでは、おそらくいくつかの検証を除いて、BL は正確に何を行うのでしょうか?
どのアプローチが正しいのか、それはそのアプローチに関する私の懸念にどのように答えますか?