我有一个包含多个子类的类
public class BaseClass{}
public class SubClass : BaseClass
{
public SomeClass someClass { get; set; }
}
我有一个其他类SomeClass
,它有一个独特的约束,通常会通过创建一个新类来违反。
这就是我想做的事情:
SubClass toBeSaved = new SubClass(){
someClass = new SomeClass("UniqueConstraintForSomeClass")
};
session.Save(toBeSaved );
如何阻止UniqueConstraintFailed Except,我的DB中的someclass将加载到我的toBeSaved
对象中的someclass中。有没有办法做到这一点?
我尝试为每个SubClass
编写一个独特的保存方法,但是当我从基类调用它时,我没有得到它。类似于:InsertIntoDb((BaseClass) SubClass)
,但我认为这是不可能的。
答案 0 :(得分:0)
为了现在保存baseClass我使用访问者模式。 所以我发送了我的访客BaseClass,他正在保存所有的子类。所以我可以配置我的约束以及它们如何保存在访问者中。 我在http://mookid.dk/oncode/archives/991
上找到了关于此模式的好文章