Стратегия дочерней коллекции и критериев NHibernate по умолчанию - PullRequest
0 голосов
/ 17 января 2012

В доменной модели есть ряд сущностей, которые имеют перечисление Status со значениями Active или Deleted.

Я ищу документацию и советы по рекомендуемым подходам к работе:

  1. При извлечении коллекции сущностей, имеющих перечисление Status, для исключения тех, для которых по умолчанию установлено значение Deleted (переопределяется в каждом конкретном случае)

  2. При извлечении дочерней коллекции сущностей по умолчанию исключаются те, для которых по умолчанию установлено значение Deleted.

Таким образом, я хочу сохранить все данные, относящиеся к объектам со свойством enum Status, но исключить те, которые имеют значение Deleted для статуса по умолчанию.

Любые указатели в правильном направлении очень ценятся.

1 Ответ

1 голос
/ 17 января 2012

Вы можете использовать функцию в nhibernate, называемую фильтром.

Пример:

  <class name="Post"  table="Posts">
     <id name="Id">
        <generator class="identity"/>
     <id>

    <property name="Title"/>
    <property name="Text"/>
    <property name="PostedAt"/>


    <filter name="NoDeleted" condition="Status <> 'Deleted'"/>
</class>

Тогда, когда вы запросите:

 session.EnableFilter("NoDeleted")

Для более: http://ayende.com/blog/3993/nhibernate-filters

...