基於經典3層的項目:UI(在此問題中不重要),業務邏輯層和數據訪問層。我有幾個表格:Customers
Products
Orders
Users
。設計應該是:數據訪問層(DAL)中的LINQ查詢方法
//DAL methods
public IEnumerable<Customer> GetAllCustomers()
public IEnumerable<Product> GetAllProducts()
public IEnumerable<Order> GetAllOrders()
public IEnumerable<User> GetAllUsers()
//BLL methods
public IEnumerable<Order> GetOrders(long CustomerID)
public IEnumerable<Product> GetProducts(long CustomerID)
public IEnumerable<Product> GetProducts(long OrderID)
令我困惑的是,我發現DAL中的所有方法都是GetAllXXXX。我不得不承認,這種設計工作正常。在DAL中只有GetAll方法。在BLL中,除了GetAll方法的組合操作(filter/join/select)以外,沒有其他任何操作。這是不是很奇怪?什麼是正確的方法?