【发布时间】:2014-03-25 20:11:51
【问题描述】:
我有三个表,每个表都有一个主键和外键,例如 TestId 和 UserTestId 等。
Exam > Test > UserTest
据我了解,我可以使用 LINQ 从这些数据中获取数据,如下所示:
var exams = _examsRepository
.GetAll()
.Where(q => q.SubjectId == subjectId)
.Include(q => q.Tests.Select(t => t.UserTests))
.ToList();
这将选择所有考试,考试的测试和 SubjectId == subjectID 的测试的 UserTests
是否有任何可能的方法可以进一步限制这一点,以便仅显示 UserTests 的 UserId 为 123 时的数据?
如果答案是否定的,那么我是否应该重写此 LINQ 以首先转到 _userTestsRepository,然后朝另一个方向向上而不是向下工作?
【问题讨论】:
-
你可以在这里使用子查询
-
Cris - 你能举个例子吗?我确实尝试了答案,但运行时出现错误。
-
我无法确定,您使用的是哪个框架?这是 EF,如果是,是哪个版本?
-
@Chris Ballard - 抱歉,我没有提供足够的信息。我们正在使用 EF6 和 SQL Server 2012。