2014-11-12 3 views
0

는 여러 개의 서브 클래스NHibernate에 고유 제한 조건 FK 객체

public class BaseClass{} 
public class SubClass : BaseClass 
{ 
    public SomeClass someClass { get; set; } 
} 

나는 종종 새로운 클래스를 만드는 과정에 위반됩니다 고유 제한 조건이있는 다른 클래스 SomeClass을 가지고있는 클래스가 있습니다. 나는 제외 UniqueConstraintFailed와 DB 내 someclass을 방지 할 수있는 방법

SubClass toBeSaved = new SubClass(){ 
    someClass = new SomeClass("UniqueConstraintForSomeClass") 
}; 
session.Save(toBeSaved); 

toBeSaved 객체의 someclass에로드됩니다 그리고 내가 무엇을 원하는 이잖아. 그렇게 할 수있는 방법이 있습니까?

SubClass에 대해 고유 한 저장 방법을 쓰려고했지만 baseclass에서 호출 할 때 작동하지 않습니다. 뭔가 : InsertIntoDb((BaseClass) SubClass),하지만 나는 이것이 불가능하다고 생각합니다.

답변

0

저장을 위해 baseClass에 visitor 패턴을 사용합니다. 그래서 방문객 BaseClass를 보내고 그는 모든 하위 클래스를 저장하고 있습니다. 따라서 제약 조건을 구성하고 방문자가 제약 조건에 저장하는 방법을 구성 할 수 있습니다. 이 패턴에 대한 멋진 게시물을 찾았습니다. http://mookid.dk/oncode/archives/991