链接在实体框架查询中包含语句

时间:2015-08-08 03:21:59

标签: .net entity-framework linq-to-entities

以下是从相关表中预先加载Entity Framework实体的正确方法:

from item in _context.entity1
    .Include("childentity1.childentity2")
    .Include("childentity1.childentity3")
where item.id == 1;

对象层次结构

  • entity1(很多) - (one)childentity1
  • childentity1(很多) - (一)childentity2
  • childentity1(很多) - (一)childentity3

我不确定是否应该以这种方式链接Include语句。

1 个答案:

答案 0 :(得分:0)

不完全。它应该是:

select

请注意最终的from item in _context.entity1 .Include(x => x.childentity1.childentity2) .Include(x => x.childentity1.childentity3) where item.id == 1 select item; 子句。如果没有它,该程序将无法编译。除此之外,您的陈述将按预期运作。

您可能还想使用替代语法,它允许强类型输入,以便在拼错时避免运行时错误:

using System.Data.Entity;

您需要_context.childentity1.Local.Count() 。此外,如果您怀疑您的实体真的被急切加载,您可以尝试以下内容:

childentity1

将告诉您已将多少if/else个对象加载到上下文中。