在我们的Web应用程序中,我们拥有带CRUD操作和通用查找程序功能的存储库,例如userRepository.Get(u => u.Username == someString)
。 和UserRepository
将只返回User
对象。mvc中的代码组织
但如果我有一个复杂的查询其做加盟之间Table1
,Table2
和Table3
并返回CustomObject
包含这3代表的某些属性。
我应该把这些查询放在服务层吗? 存储库是否只包含基本的CRUD和查找程序功能,并返回基本的实体对象而没有其他内容?我问,因为有人告诉我,没有查询应该在服务层...
这是您需要查看Domain驱动设计的地方,您可以使用存储库执行此操作,但在应用程序复杂时它不是通用的 – brykneval
您也可以查看此文章:http://programmers.stackexchange。com/questions/218011/how-accurate-is-business-logic-should-in-a-service-not-in-a-model – Peter