我很确定我对如何实现Repository Pattern有了很好的理解,但是我陷入了关于复杂查询/方法的决策循环中。存储库模式:复杂的方法去哪里?
如果我想获得所有在用户表上具有特定字段值的用户或用户,那么很明显,它将进入用户存储库。但是,如果我有更复杂的查询,例如所有完成视频课程的视频课程的用户,该怎么办?在我的模型中,这个查询大约有6个表。
我希望能够为我们的存储库做一些事情,如if(user.completedVideoRequirement),但我很难说服自己,用户存储库是这个地方。这对我来说似乎是对的,但我可以很容易地将自己说出来。
什么是正确的方法?
编辑:如果我返回数据库实体以外的信息(即返回true/false或其他一些int)会怎么样。如果这甚至发生在存储库级别,或者我应该像if(users.CompletedVideoRequirement.Any())那样做? 我想这对我来说仍然是在用户存储库上,因为它是关于用户的信息,但从技术上讲,它也是关于视频的信息。
你在使用ef吗?如果是,那么你应该有一个系统中所有表的上下文。如果是,那么您可以从一个存储库访问任何具有该上下文的表。它有什么问题? – cassandrad