NHibernate возвращает связанный набор с нулевыми элементами - PullRequest
1 голос
/ 11 июля 2011

У меня есть одна проблема с 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}.Я не понимаю, как список может содержать ноль.В базе данных в таблице «Фильтры» существует только одна строка, возвращенная вместе с нулевым объектом в списке.

1 Ответ

2 голосов
/ 11 июля 2011

В таблице Фильтры одна строка имеет FilterIndex = 1.

В документации отмечается, что индексированный столбец для проиндексированного нумеруется с нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...