2011-04-07 5 views
0

좋아, 첫째로 나는 이것이 의미가 있기를 바랍니다.추상적 인 기초가있는 유창한 자동 매핑

다음 아이디어를 기반으로 앱에 유창한 자동 매핑을 사용하려고합니다.

NHibernate.MappingException : ProcessStep가 매핑되지 않은 클래스를 참조하는 테이블에서 협회는 지적 실패의 I 스키마를 생성하거나 (그렇지 않으면 SQLite는 또는) 내 매핑을 테스트하려고하지만

public abstract class Container 
{ 
    public virtual int Id {get; set}; 
    public virtual string Name {get; set;} 
} 

public class FirstSubClass : Container 
{ 
    //properties and behaviour here 
} 

public class SecondSubClass : Container 
{ 
    //properties of SecondSubclass Here 
} 

public class ProcessStep 
{ 
    public virtual Container Source {get; set} 
    public virtual Container Destination {get; set;} 
} 

: ...... Entities.Container

컨테이너 클래스를 변경하고 추상화하지 않으면 작동합니다.

엔티티의 속성을 기본 유형이 아닌 기본 유형으로 노출 할 수 있습니까?

도움이 되었으면 감사하겠습니다.

답변

4

기본적으로 Fluent Nhibernate는 매핑을 생성 할 때 추상 기본 클래스를 무시합니다. 포함하려면 IncludeBase 방법을 사용해야합니다.

AutoMap.AssemblyOf<Container>(cfg) 
     .IncludeBase<Container>(); 
+0

감사합니다. @Sly. 질문을 제기 한 이후로 실제로 옮겨 갔고 추상적 기반에서 인터페이스로 변경할 수 있는지 궁금해했습니다. 따라서 컨테이너를 참조한 곳에서 IContainer로 바꾸시겠습니까? ProcessStep이 주어진 키 제약 조건을 유지할 수 없기 때문에 이것이 가능합니까? 그런 다음 제약 조건을 생성하지 않고 스키마를 생성하고 null을 허용 할 수 있습니까? –

관련 문제