NHibernate ICriteria с сумкой - PullRequest
0 голосов
/ 13 февраля 2009

Просто быстрый вопрос. Если у меня есть 2 таблицы, которые объединены в 3-ю таблицу с отношением «многие ко многим», возможно ли написать ICriteria с выражениями в одной из таблиц и в таблице соединений?

Допустим, файл сопоставления выглядит примерно так:

    <bag name ="Bag" table="JoinTable" cascade ="none">
      <key column="Data_ID"/>
      <many-to-many class="Data2" column="Data2_ID"/>
    </bag>

Можно ли написать ICriteria наподобие следующего?

        ICriteria crit = session.CreateCriteria(typeof(Data));
        crit.Add(Expression.Eq("Name", name));
        crit.Add(Expression.Between("Date", startDate, endDate));
        crit.Add(Expression.Eq("Bag", data2IDNumber));

Когда я пытаюсь это сделать, он говорит мне, что ожидаемый тип - IList, тогда как фактический тип - Bag.

Спасибо.

1 Ответ

1 голос
/ 13 февраля 2009

Вы должны сделать это так (я думаю)

ICriteria crit = session.CreateCriteria (typeof(Data));
crit.Add (Expression.Eq ("Name", name));
crit.Add (Expression.Between ("Date", startDate, endDate));
crit.CreateAlias ("Bag", "b");
crit.Add (Expression.Eq ("b.Id", data2IDNumber));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...