title: LINQ query methods in the data access layer(DAL)
body: <p>A project base on classic 3 layers: UI(not important in this question), business logic layer and data access layer. I have several tables: <code>Customers</code>  <code>Products</code>  <code>Orders</code>  <code>Users</code>. The design is supposed to be:</p>
  
  <pre><code>//DAL methods
  public IEnumerable&lt;Customer&gt; GetAllCustomers()
  public IEnumerable&lt;Product&gt; GetAllProducts()
  public IEnumerable&lt;Order&gt; GetAllOrders()
  public IEnumerable&lt;User&gt; GetAllUsers()
  //BLL methods
  public IEnumerable&lt;Order&gt; GetOrders(long CustomerID)
  public IEnumerable&lt;Product&gt; GetProducts(long CustomerID)
  public IEnumerable&lt;Product&gt; GetProducts(long OrderID)
  </code></pre>
  
  <p>What confuses me is that I find that all methods in DAL are GetAllXXXX. And I have to admit that this design is working fine. In DAL there is nothing but GetAll methods. In BLL there is nothing but combined operations(filter/join/select) to GetAll methods. Is it weird? What's the correct way?</p>