Коллекция NHibernate не загружается с данными, но данные вставляются в базу данных

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

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

Вот мои файлы сопоставления.

AnnualReport класс

<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>


person Matt    schedule 26.02.2010    source источник
comment
Это должны быть отношения «многие ко многим»?   -  person Steve    schedule 26.02.2010


Ответы (1)


Спасибо за ответ, Стив, я все же сумел разобраться. Отображение внешнего ключа было неверным. Ниже проблема устранена, и теперь коллекция загружается.

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