2010-02-26 8 views
0

NHibernate에서 내가 뭘 잘못하고 있는지 확실하지 않습니다. 두 개의 매핑 된 파일을 두 테이블에 매핑되어 있습니다. 데이터베이스에 매핑을 통해 데이터를 삽입 할 수 있지만 올바른 외부 키가있는 테이블에 채워진 자식 행을 볼 수 있지만 아래 코드를 호출하면 0이 반환됩니다. 이 게으름로드 문제입니까? 감사.NHibernate 컬렉션에 데이터가로드되지 않지만 데이터베이스에 데이터가 삽입되었습니다.

var result = session.Get<AnnualReport>(annualReport.ReportID); 
Assert.AreEqual(result.MonthlyReports.Count, 1); 

내 매핑 파일은 다음과 같습니다.

년차 클래스

<joined-subclass name="AnnualReport" extends="Report" table="AnnualReports" > 

<key column="ReportID"/> 

<property name="MonthlySendDate" /> 

<bag name="MonthlyReports" lazy="true" inverse="true"> 
    <key column="ReportID" /> 
    <one-to-many class="MonthlyReport"/> 
</bag> 

<many-to-one name="Client" column="ClientID" not-null="true" /></joined-subclass> 

MonthlyReport 클래스 응답 스티브

<joined-subclass name="MonthlyReport" extends="Report" table="MonthlyReports"> 

<key column="ReportID"/> 
<property name="SentDate" /> 

<many-to-one name="AnnualReport" class="AnnualReport" column="AnnualReportID" not-null="true"/> 

<bag name="MarketReports" cascade="all"> 
    <key column="MonthlyReportID" /> 
    <one-to-many class="MarketReport"/> 
</bag> 

+0

다 대 다 관계입니까? – Steve

답변

0

덕분에, 그래도 난 그것을 알아 내기 위해 관리했다. 외래 키 매핑이 잘못되었습니다. 아래 문제가 해결되어 이제 컬렉션이로드됩니다.

<bag name="MonthlyReports" lazy="true" inverse="true"> 
    <key column="AnnualReportID" /> 
    <one-to-many class="MonthlyReport"/> 
</bag>