2011-10-07 2 views
0

오늘 초 나는 원래 클래스를 두 개로 분해했다. 원본 클래스를 추상 클래스로 표시하고 추상 클래스를 상속받은 두 개의 서브 클래스를 생성했다.Fluent NHibernate에서 중복 매핑 소스를 찾는 것

DiscriminateSubClassesOnColumn("EntryType"); 

그 필드는 데이터베이스에있는 정수 :

나는 다음과 같은 컬럼 값 (테이블 당 클래스 계층 구조)를 기반으로 서브 클래스를 구별하기 위해 내 FluentNHibernate 매핑에 선을 추가했다.

:

DiscriminatorValue(1); 

내가 계속이 예외로 실행하고 다음과 같이

나의 새로운 매핑 판별을위한 MyChildTypeMap의 생성자 메서드의 새로운 라인으로

SubClassMap<MyChildType> 

에서 상속

"Duplicate class/entity mapping MyNamespace.MyChildObject" 

Fluent NHibernate 세션 빌더에서 (Fluently.Configure() .. ..) hbm 파일에 매핑을 내보내는 행을 추가했습니다. 물론 하위 클래스는 상위 클래스의 매핑 파일에 두 번 나열됩니다.

자동 매핑 구성을 사용하고 있지 않습니다. Fluent NHibernate 1.2.0.0을 사용하고 있습니다. NHibernate 3.2.0.400을 사용하고 있습니다.

저는이 부분이 어디서 왔는지 알아 내려고 노력하고 있습니다. 누구든지 도와 줄 수 있습니까? 매핑이 무엇인지의 디버그 로그 (당신은 또한 OutputToFile 수,이 경우 콘솔에)

Fluently.Configure() 
    .Database(\\your db stuff here) 
    .Diagnostics(diag => diag.Enable().OutputToConsole()) 
    .Mappings(\\mappings); 

이 스트리밍됩니다

+0

이 문제의 근본 원인을 알아 냈습니까? 나는 비슷한 질문을했습니다. – Astaar

답변

2

당신의 매핑이 어떻게 구성되는지 볼 수있는 빠른 방법은 FluentNHibernate의 진단 프로그램을 사용하는 것입니다 어떤 클래스에서 만들어지며 무엇이 클래스를 추가하거나 건너 뛸 수있게 만들었습니다.

+0

아, 나는 그걸 모르고 있었어! 고맙습니다! – reallyJim

관련 문제