Фильтр формулы свойства NHibernate - PullRequest
5 голосов
/ 20 мая 2009

У меня есть следующий класс:

MyClass
public virtual int Id { get; set; }
public virtual int Code { get; set; }
public virtual int Description { get; set; }
public virtual int Name { get; set; }

со следующим отображением:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="TestApplication" assembly="TestApplication">
  <class name="MyClass" table="MyTable">
    <id name="Id" column="id">
      <generator class="native"/>
    </id>

    <property name="Code" column="code"/>
    <property name="Description" column="description"/>
    <property name="Name" formula="(SELECT b.translation FROM translations b WHERE b.translation_id = translation_id AND b.language_id = :TranslationFilter.LanguageId)"/>
  </class>

  <filter-def name="TranslationFilter">
    <filter-param name="LanguageId" type="Int32"/>
  </filter-def>
</hibernate-mapping>

Я пытаюсь загрузить сущность через пружину с помощью:

Session.EnableFilter("TranslationFilter").SetParameter("LanguageId", 1);
return Session.Get<MyClass>(1);

но я получаю исключение. Я вижу (в профилировщике), что переменная: TranslationFilter.LanguageId не заменяется на? а что значение параметра не отправляется на сервер?

Возможно ли это (иметь фильтры в формуле) и как?

Большое спасибо!

1 Ответ

1 голос
/ 28 июня 2010

Эта функция официально не поддерживается. Как таковой пост в блоге Орен об этой комбинации двух различных функций (формул и фильтров) следует воспринимать с недоверием ...

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