我想通过Linq查询获取带导航属性的所有注释。我在我的实体中禁用了延迟加载和代理。
public partial class dbCommentEntities : DbContext
{
public dbCommentEntities()
: base("name=dbCommentEntities")
{
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
}
}
我从数据库加载的查询代码是
var queryTest = (from c in db.Comments
where c.ParentId == null
orderby c.CommentId descending
select new minicomment {
Title = c.Title,
CommentId = c.CommentId,
Comments1 = c.Comments1}).Skip(skip).Take(take);
现在,如果我在dbcontext
中启用延迟加载和代理,它对我来说很好。这意味着获得所有级别的导航......
但是这是禁用或启用等于false它只为我加载一个级别。
如何在懒惰和代理为假时获取所有级别导航
谢谢。
答案 0 :(得分:1)
您必须使用Eager Loading
。
什么是渴望加载?
使用Eager Loading时,会同时加载相关实体 您的目标实体集。您在查询中使用Include语句 指出您要引入的相关实体。
一个例子:
return (from owner in Catalog.Owners
where owner.Key == ownerKey
select owner)
.Include(o => o.Credits)
.Include(o => o.Provider)