我有4张桌子
Student
,Result
,ResultDetail
和Queue
Result
和ResultDetails
与ResultID
作为ForeignKey相关。
Student
和Result
与StudentID
关联为ForeignKey
和Student
可以有'N'个结果,但只有一个有效的Result
。
Queue
和Student
与StudentID
相关。
现在使用实体框架和存储库模式, 我想要 执行->
Queue q join Student s on q.StudentID = s.StudentID
join Result r on q.StudentId = r.StudentID
Join ResultDetail rd on t.ResultID = rd.ResultId where r.IsActive = 1
有人可以通过存储库模式帮助实现这一目标吗? 即使我们在表之间有关系,也需要创建4个存储库吗? 性能也是一个标准。
谢谢。
答案 0 :(得分:0)
有人可以通过存储库模式帮助实现这一目标吗?
是的。创建一个自定义的DbContext子类型作为您的存储库。为每种实体类型添加一个DbSet属性。还要在实体上放置导航属性,以便查询,这样就不必在LINQ中使用join
。