C#学习教程:如何在linq中包含()嵌套子实体即,乔布斯有QuoteItems的报价varjob=db.Jobs.Where(x=>x.JobID==id).Include(x=>x.Quotes).Include(x=>x.Quotes.QuoteItems)//这不起作用.SingleOrDefault();为了更清楚-我正在尝试检索单个工作项目,它是相关的报价(一对多)和与每个报价相关的报价项目(一个报价可以有很多报价项目)我问的原因是因为在我报价索引视图,我试图通过SUMming小计显示每个报价的所有报价项目的总和,但结果为0。我这样调用小计:@item.QuoteItem.Sum(p=>p.小计)我相信我遇到这个问题的原因是我上面的Linq查询没有为每个报价检索相关的QuoteItems。为了得到一份工作并急切地加载所有报价和报价,你写:varjob=db.Jobs.Include(x=>x.Quotes.Select(q=>q.QuoteItems)).Where(x=>x.JobID==id).SingleOrDefault();如果QuoteItems也是一个集合,您可能需要SelectMany而不是Select。给别人注意;强类型的Include()方法是一种扩展方法,因此您需要使用System.Data.Entity;包括使用System.Data.Entity;在你的文件的顶部。这将完成这项工作(假设我们正在谈论实体框架并且您想获得子实体):varjob=db.Jobs.Include(x=>x.Quotes)//包括“Job.Quotes”关系和数据。Include("Quotes.QuoteItems")//包含与数据的“Job.Quotes.QuoteItems”关系.Where(x=>x.JobID==id)//继续原来的Job.JobID.SingleOrDefault();//从数据库中获取第一个命中。有关Include语句的更多信息,请查看:http://msdn.microsoft.com/en-us/library/bb738708(v=vs.110).aspx@flindebergsayshere,这对我有用。刚刚添加检查列表中的每个父项是否有子项以上是C#学习教程:Howtoinclude()nestedchildentitiesinlinq分享的所有内容,如果对大家有用还需要进一步了解C#学习教程,希望大家多多关注—Listcompanies=dbCtx.Companies.Where(x=>x.CompanyBranches.Count>0).Include(c=>c.CompanyBranches).Include("CompanyBranches.Address").ToList();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
