2011-01-24 76 views
0

我正在用c#开发asp.net mvc 2中的小问题答案应用程序。我的情况是这样的: enter image description here如何在Linq中构建此场景的查询

在我的行动我有chapterId作为参数,这个字段存在问题表。我想获得chapterId的全部测试主对象。一章可以有多个测试。在测试主题的细节中,我保留特定章节的问题ID。 如何获取List在这里? BU LINQ - 到SQL查询?

+1

意见:删除TestDetailsId,并在其他两个字段上创建一个复合PK,否则最终会出现我认为不需要的重复项。 – leppie 2011-01-24 10:12:38

+0

你是对的,但由于它是小应用程序,并有一些时间限制,我现在已经避免了它。谢谢亲爱的。 – 2011-01-24 10:35:08

回答

2

如果我理解正确的话,你可以做这样的:

yourContext.Questions.Where(q => q.ChapterId == chapterId) 
        .SelectMany(q => q.TestDetails) 
        .Select(td => td.TestMaster); 
+0

谢谢,这是工作完美,只是我添加不同为this.as yourContext.Questions.Where(Q => q.ChapterId == chapterId) .SelectMany(Q => q.TestDetails) 。选择(TD => td.TestMaster).Distinct()。ToList();; – 2011-01-24 10:36:10

1

用于获取结果的查询将是
VAR的结果=(从问题问 在q.QuestionId testDetails加入TD等于td.QuestionId join tm in testMasters on td.TestId等于tm.TestId select tm).Distinct();