繁体   English   中英

如何从linq中的子表中选择列

[英]How to select column from child table in linq

如何在linq查询中包含二级表列? 我不希望.Net执行延迟加载,因为还有其他表链接到这些表。

表是

Quiz:    
 - Id
 - Name

Questions:    
 - Id
 - Name
 - quizId

Options:   
 - id
 - Name
 - QuestionId

测验和问题有一对多的关系。 选项问题也有一对多的关系。

var quiz=db.Quiz.include(a=>a.Questions)......ToList();

如何在linq查询中包含选项列?

如果您想要永久加载实体的孙子,只要您正确映射了关系,下面的代码就可以实现这一点。

var quiz = db.Quiz
             .Include(a => a.Questions.Select(q => q.Options))
             .ToList();

添加到Questions属性选项作为ICollection并映射为一对多。 那你可以用

var quiz=db.Quiz.include(a=>a.Questions).include(a=>a.Questions.Options).......ToList();

要么

我很确定你可以做多个Include() s:

var quiz = db.Quiz
           .Include(x => x.Questions)
           .Include("Questions.Options")
           .ToList();

虽然像@ pwee167的答案一样,它并不是完全强类型的,但它对于您希望包含在查询中的每个集合都是描述性的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM