我設計一個具有多個功能的WCF服務:在WCF 3層設計中 - DAL包含了什麼?
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查詢以從數據庫提取數據。那麼 - 在這種方法中 - DAL應該是什麼?它是空的嗎?
第二種方法: DAL包含對DB執行CRUD操作的函數,這意味着任何LINQ-TO-EF查詢都將在DAL中完成。 所以 - 在這種方法中 - 除了可能的一些驗證,BL究竟做了什麼?
哪種方法是正確的,這是如何回答我對這種方法的關注?
我會用第一種方法,正是我在做的wcf服務 – Usher 2012-04-23 22:15:16
那麼你DAL確切地包括? – 2012-04-23 23:02:06
我的DAL包含數據模型和NHibernate – Usher 2012-04-23 23:12:13