我的设置如下:实体框架POCO(+代理和延迟加载)。引用Person
的{{1}}课程:
Address
问题是这是public class Person
{
private Address _address;
/* Navigation property */
public virtual Address Home
{
get
{
return _address;
}
set
{
_address = value;
}
}
}
属性,可以是0..1
。问题是 - 如果它是null
,我该如何创建一个新的Address实例。延迟加载不会自动创建一个新实例(它不应该),如果我按如下方式重写getter,它总是会创建一个新的null
:
Address
因此,如果从未真正从 private Address _address;
/* Navigation property */
public virtual Address Home
{
get
{
if(_address == null) Address = MyContext.CreateObject<Address>();
return _address;
}
set
{
_address = value;
}
}
转到这样的实际值(我猜这与EF延迟加载和代理属性重载机制有关)。在构造函数中检查null
也没有帮助 - 相同的结果 - 总是创建一个新的null
。