作为另一个类成员的类始终为 null



我正在首先使用实体框架代码处理一个 C# WPF 项目。

我有一个类,它的成员是另一个类的实例。我正在尝试访问成员类的属性值。我可以通过这种方式获取值:

var com = context.MyParentClass.Where(p => (p.Identity == id)).Select(c =>
new
{
id = c.Identity,
PropertyValue = c.MyChildClass.PropertyValue
}
);
foreach(var item in com)
{
string xx = item.PropertyValue;
MessageBox.Show(xx);
}

但是当我尝试在没有选择的情况下获取值时,成员类始终为 null:

var com = db.MyParentClass.SingleOrDefault(b => b.Identity == id);
string xx = com.MyChildClass.PropertyValue; //MyChildClass is null
MessageBox.Show(xx);

有谁知道这里发生了什么?如何解决空问题?

您必须确保是否启用了延迟加载。

  1. context.Configuration.ProxyCreationEnabled应该是真的。
  2. context.Configuration.LazyLoadingEnabled应该是真的。
  3. 导航属性应定义为publicvirtual。这 如果属性未定义为 虚拟。

您也可以使用Include进行预先加载。谢谢@CodeCaster的建议。

参考: https://www.entityframeworktutorial.net/lazyloading-in-entity-framework.aspx

相关内容

  • 没有找到相关文章

最新更新