【发布时间】:2014-06-05 01:03:29
【问题描述】:
我最近了解到,使用代码优先设计它是一个好主意(使用实体框架时),POCO 类也与原始域类逻辑混合。
所以我决定使用这个新想法。之前(例如)我有一个名为 DatabasePerson 的 POCO 类和一个名为 Person 的域类。我现在正在尝试将它们合并为一个,以便让 Entity Framework 更好地管理我的存储库,并更轻松地管理对域层的更改。
现在,在我的 DatabasePerson POCO 课程中,我有一个指向 DatabaseAccount POCO 课程的链接。同样,我的Person 域类有一个指向Account 域类的链接。
在 Entity Framework 中,为了允许延迟加载这些类型的链接,我将链接属性声明为虚拟的(如在 DatabasePerson 类中),如下所示:
public virtual DatabaseAccount Account { get; set; }
但是,如果我想更改帐户的设置或获取方式,以及尝试将其设置为null 时如何处理异常,该怎么办?如何确保这不会与 Entity Framework 添加到表中的任何内容发生冲突?
这是我的域类的链接:
public Account Account {
get {
//maybe do some other stuff here.
return account;
}
set {
if (value == null) throw new ArgumentNullException("value");
account = value;
//maybe do some other stuff here.
}
}
我想以某种方式保持这种形式的可定制性,但也有延迟加载。这可能吗?
【问题讨论】:
标签: c# entity-framework domain-driven-design poco