如何在linq查询中包含二级表列? 我不希望.Net执行延迟加载,因为还有其他表链接到这些表。
表格是
Quiz:
- Id
- Name
Questions:
- Id
- Name
- quizId
Options:
- id
- Name
- QuestionId
测验和问题具有一对多的关系。对选项的问题也有一对多的关系。
var quiz=db.Quiz.include(a=>a.Questions)......ToList();
如何在linq查询中包含选项列?
答案 0 :(得分:2)
如果您想要永久加载实体的孙子,只要您正确映射了关系,下面的代码就可以实现这一点。
var quiz = db.Quiz
.Include(a => a.Questions.Select(q => q.Options))
.ToList();
答案 1 :(得分:0)
添加到Questions属性选项作为ICollection和映射为一对多。 然后你可以使用
var quiz=db.Quiz.include(a=>a.Questions).include(a=>a.Questions.Options).......ToList();
或者
答案 2 :(得分:0)
我很确定你可以做多个Include()
s:
var quiz = db.Quiz
.Include(x => x.Questions)
.Include("Questions.Options")
.ToList();
虽然不像@ pwee167的答案那样输入不完全强烈,但是对于您希望包含在查询中的每个集合,它都是描述性的。