У меня есть одна проблема с NHibernate (C #, MVC3).У меня есть две связанные таблицы «один ко многим»: «Источники и фильтры» (один «Источник» на несколько фильтров).
Отображение для источников:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Core" namespace="Core.Model">
<class name="Source" table="Sources">
<id name="Id">
<generator class="identity" />
</id>
... properties ...
<list name="Filters" cascade="all-delete-orphan" inverse="false">
<key column="SourceId" />
<index column="FilterIndex" />
<one-to-many class="Filter" />
</list>
</class>
</hibernate-mapping>
Отображение для фильтров:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Core" namespace="Core.Model">
<class name="Filter" table="Filters" abstract="true">
<id name="Id">
<generator class="identity" />
</id>
... properties ...
<many-to-one name="Source" column="SourceId" />
</class>
</hibernate-mapping>
Вся работа
Проблема в том, что когда я получаю исходную запись из базы данных:
Source source = session.Get<Source>(id);
Я получаю список из двух элементов source.Filters = {null, Filter}.Я не понимаю, как список может содержать ноль.В базе данных в таблице «Фильтры» существует только одна строка, возвращенная вместе с нулевым объектом в списке.