实体框架 - 返回数据库值或创建新实例(nav属性)

时间:2010-08-17 12:48:40

标签: entity-framework

我的设置如下:实体框架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

0 个答案:

没有答案