c#具有一对多关系的EF表 - 显示在同一页面上

时间:2016-07-26 15:52:31

标签: c# entity-framework

我有类似的课程:

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循环显示它。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

如果将DbContext.Configuration.ProxyCreationEnabled设置为false,则除非在父对象上调用Include方法,否则DbContext将不会加载某些父对象的子对象。将DbContext.Configuration.LazyLoadingEnabled设置为true或false将不会对其行为产生影响。

同样在视图中,为了显示您的子实体,请确保您不会丢弃DbContext,直到视图完全呈现或响应已消失。

相关问题