我有类似的课程:
public class Parent
{
public int ParentId { get; set; }
.....
public virtual ICollection<ChildValue>ChildValues { get; set; }
}
public class ChildValue
{
public int ChildValueValueId { get; set; }
public int ParentId { get; set; }
public virtual Parent Parent{ get; set; }
}
在控制器类中我有:
public ViewResult DisplayData(*Searchvalue*)
{
Parent parent = DbContext.Parent
.Where(x => (..) && (..)).FirstOrDefault();
return View(parent);
}
我的问题是:在控制器类DisplayData函数中,当我调试并快速查看parent.ChildValues为什么它为null?我以为EF会自动检索相关的子值,在视图页面上我可以使用foreach循环显示它。我错过了什么吗?
答案 0 :(得分:0)
如果将DbContext.Configuration.ProxyCreationEnabled设置为false,则除非在父对象上调用Include方法,否则DbContext将不会加载某些父对象的子对象。将DbContext.Configuration.LazyLoadingEnabled
设置为true或false将不会对其行为产生影响。
同样在视图中,为了显示您的子实体,请确保您不会丢弃DbContext,直到视图完全呈现或响应已消失。