【发布时间】:2011-08-10 07:08:26
【问题描述】:
我正在使用领域驱动设计和 EF 4.1 构建一个系统。在我的一些属性中,我有防止设置非法值的逻辑,如果是这样则抛出异常。我认为 EF 在实例化我的类时创建了一个新的临时类,例如MyClass_abc123…继承自覆盖所有虚拟成员的 MyClass,以便能够使用数据库中的数据设置它们。当 EF 实例化下面的类并尝试设置属性 MyObj 时,将引发异常。任何人有线索或解决它的好方法?
public class MyClass
{
private MyObject _myObj;
public virtual MyObject MyObj
{
get { return _myObj; }
set
{
if (!check some logic...)
throw new Exception();
_myObj = value;
}
}
}
BR 菲利普
【问题讨论】:
-
我们不知道你的 setter 中执行了什么逻辑。这不是覆盖属性的问题。这是你的逻辑问题。
-
如果我只写,跳过“逻辑”的事情: set { throw new Exception();} 它会抛出异常。但我认为 EF 会用它自己的属性覆盖该属性?
标签: c#-4.0 entity-framework-4 domain-driven-design polymorphism