2010-02-26 3 views
0

Не уверен, что я делаю неправильно здесь с NHibernate. У меня есть два файла сопоставления, сопоставленные двум таблицам. Я могу вставлять данные через сопоставление в базу данных, но вызов кода ниже возвращает 0, хотя я вижу дочернюю строку, заполненную в таблице, с правильным внешним ключом. Это ленивая проблема с загрузкой? Благодарю.NHibernate collection не содержит данные, а данные вставляются в базу данных

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>