【发布时间】:2011-05-17 17:47:15
【问题描述】:
我使用 Repository 模式(和 linq2sql 作为数据访问),并且有例如 ProductsRep 和 CustomersRep。
在非常简单的场景中,db 有两个表 - Produsts(ProductID、CustomerID、ProductName、Date)和 Customer(CustomerID、FirstName、LastName)。
每个存储库都提供创建、更新、删除和获取特定模型对象的方法,并且可能是一些过滤器。
但如果我想通过产品名称查询购买特定产品的所有客户,我必须使用 ProductsRep 获取该产品的 ProductID,然后使用 CustomersRep 获取所有购买具有此 id 产品的客户。
我说的对吗?这其实是l2s必须生成的两个sql请求,难道只能做一个请求吗?
而且,一般来说,如果我们想使用具有关系和存储库模式的多个表来查询数据,如何通过将查询量降至最低来做到这一点?
谢谢。
【问题讨论】:
-
如果你能画出你的表格,你的问题会更容易理解。名称和列。请在文本中使用一些换行符。
-
您不应该按表对存储库进行分组(如果您应该对它们进行分组的话),而是按使用情况。
标签: performance linq-to-sql architecture repository-pattern