나는 다음과 같은 매핑 클래스가 : 이제 다음 테스트가 실패C# NHibernate에 가입 - 서브 클래스 가져 오기 문제
<class name="Company" table="Company">
<id name="ID" column="CompanyID">
<generator class="native"/>
</id>
<joined-subclass name="CompanyAccounting" table="company_accounting" lazy="true">
<key column="CompanyID"/>
</joined-subclass>
<joined-subclass name="CompanyCarbon" table="company_carbon" lazy="true">
<key column="CompanyID" />
</joined-subclass>
</class>
을 :
var company = CompanyAdapter.Get<Company>(_session, 32);
Assert.IsNotNull(company);
var client = CompanyAdapter.Get<CompanyClient>(_session, 32);
Assert.IsNotNull(client);
그러나 다음과 같은 성공 :
var client = CompanyAdapter.Get<CompanyClient>(_session, 32);
Assert.IsNotNull(client);
var company = CompanyAdapter.Get<Company>(_session, 32);
Assert.IsNotNull(company);
을 첫 번째 테스트가 실패하는 이유는 NHibernate가 CompanyAccounting으로 회사를 검색하기 때문입니다. Company (32)는 모두 accoun입니다 ting 회사와 클라이언트, 그리고 Session.Get을 호출 한 후 CompanyAccounting으로 회사를 검색하면 데이터베이스로 돌아 가지 않고 CompanyClient에 대한 항목이 있는지 확인합니다. 회사는 하위 클래스에만있을 수 있다고 가정합니다. 어쨌든 모든 하위 클래스에서 상속받을 수 있다고 지정하는 것입니까?