C# 作为另一个类成员的类始终为null
我正在做一个C#WPF项目,首先使用实体框架代码 我有一个类,它的成员是另一个类的实例。我正在尝试访问成员类的属性值。我可以通过以下方式获得值:C# 作为另一个类成员的类始终为null,c#,wpf,entity-framework,null,C#,Wpf,Entity Framework,Null,我正在做一个C#WPF项目,首先使用实体框架代码 我有一个类,它的成员是另一个类的实例。我正在尝试访问成员类的属性值。我可以通过以下方式获得值: var com = context.MyParentClass.Where(p => (p.Identity == id)).Select(c => new { id
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);
}
但当我尝试在不使用select的情况下获取值时,成员类始终为空:
var com = db.MyParentClass.SingleOrDefault(b => b.Identity == id);
string xx = com.MyChildClass.PropertyValue; //MyChildClass is null
MessageBox.Show(xx);
有人知道这里发生了什么吗?如何绕过空问题?您必须确保是否启用了延迟加载
context.Configuration.ProxyCreationEnabled
应为truecontext.Configuration.LazyLoadingEnabled
应为truepublic
,virtual
。这个
如果属性未定义为,则上下文不会执行延迟加载
虚拟的Include
进行即时加载。谢谢@CodeCaster的建议
参考:它是否包含在提取中?这在技术上是可行的,但您通常不希望延迟加载。OP只需要
Include()
。是的,他也可以使用即时加载。谢谢!