Коллекция NHibernate не загружается с данными, но данные вставляются в базу данных
-
22-09-2019 - |
Вопрос
Не уверен, что я делаю неправильно здесь с NHibernate.У меня есть два файла сопоставления, сопоставленных двум таблицам.Я могу вставить данные через сопоставление в базу данных, но вызов приведенного ниже кода возвращает 0, хотя я вижу дочернюю строку, заполненную в таблице правильным внешним ключом.Это проблема с отложенной загрузкой?Спасибо.
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>
Решение
Спасибо за ваш ответ, Стив, тем не менее, мне удалось разобраться в этом.Сопоставление внешнего ключа было неправильным..ниже исправлена проблема, и теперь коллекция загружается.
<bag name="MonthlyReports" lazy="true" inverse="true">
<key column="AnnualReportID" />
<one-to-many class="MonthlyReport"/>
</bag>
Не связан с StackOverflow