如何指定要返回的SQL层次结构的级别?

时间:2016-01-04 03:00:27

标签: c# sql asp.net

使用ASP.NET 4.5和EF 6,我整理了一个如下所示的多级数据模型:

组织,其ICollection为:

_____ 工作区,其ICollection为:

__________ 项目,其ICollection为:

_______________的

当我向数据库询问使用以下代码的组织列表时,我得到了一个巨大的多级嵌套响应数据库中的所有对象。

var orgs = await (from o in db.Organizations select o).ToListAsync();

如何指定我只想返回顶级? (或任何其他特定的搜索深度?)

我确信这很容易,但我是SQL C#世界的新手,并且不知道找到有用的Google或SO答案的正确语言......

更新:kienct89获胜!

“延迟加载”是正确的术语,这里是some good info about it

2 个答案:

答案 0 :(得分:2)

您正在[{1}}

中寻找Eager loadingLazy loading的对比

延迟加载:执行查询(序列化对象,强制转换为枚举,列表等)时,数据将自动

急切加载:数据将手动加载仅在您想要时(使用entity framework功能)

如果您想关闭Include(),可以使用下面的代码

Lazy Loading

答案 1 :(得分:1)

如果您不希望全局禁用延迟加载(Configuration.LazyLoadingEnabled会这样做),您可以在声明中按omitting the virtual key word定位特定属性。