我们正在使用一堆带有后缀的独立类,-repository
以从数据库中检索数据。每个表都有自己的存储库。
例如,我们有一个customerrepository
具有各种方法来检索客户的类,并且具有一个vacancyrepository
具有各种方法来检索空缺的类。
关于这种做事方式,我有两个问题:
如何获取跨越多个表的数据?例如,我有一个屏幕,显示所有尚未创建空缺的客户。可以
customerrepository
从中使用方法vacancyrespository
,还是两个存储库都返回结果,并且层次结构中是否有更高的类(我们将其命名为adataservice
)从两个存储库中获取结果并将它们合并为1个结果?这样的存储库可以处理多少逻辑?
我认为可以在存储库中实现“ where active == true”以仅检索活动记录,还是应该由层次结构中较高的类来处理简单的逻辑(将其命名为adataservice
)?
我现在遇到的示例是以下示例:
我们有一个问题列表,其中包含一个或多个问题。
问题可以有一个结果,该结果保存在单独的表中。
因此,当您要检索问题列表的总结果时,必须合并questionlist
表,问题表和questionstatus
表中的数据。
现在,我们为这些表提供3个不同的存储库。
如果我要问questionlistrepository
清单12的总结果是什么,那将不得不从另外两个存储库中获取数据,因此其中有些逻辑,这是允许的吗?
还是有questionlistdataservice
哪个知道要使用哪个存储库?
还有一件事:我们的存储库可以生成一个结果,IQueryable
以便调用服务可以轻松地合并结果,但是如果不是这种情况,我认为从列表中检索所有三个表的所有内容不是一个好主意。数据库。