свободный именованный запрос nhibernate без использования файла hbm для карты - PullRequest
8 голосов
/ 23 марта 2010

Мне нужно создать именованный запрос и использовать его с одной из карт, которые я сейчас определил как свободную карту.

можно ли продолжать использовать беглую карту и иметь возможность динамически создавать именованный запрос в коде? или переход на карту hbm - единственный вариант?

1 Ответ

9 голосов
/ 04 сентября 2010

Возможно, я неправильно читаю вопрос, но вам не нужно полностью переключаться на отображение hbm.

Вы можете продолжать использовать беглый NHibernate для отображения классов и использовать hbm только для именованных запросов.В вашей конфигурации вы затем включили бы сущности и hbms.

_sessionFactory = Fluently.Configure()
.Mappings(m =>
{
   m.FluentMappings.AddFromAssemblyOf<SomeEntityMap>();
   m.HbmMappings.AddFromAssemblyOf<SomeEntityMap>();
})
.BuildSessionFactory();

В вашем namedQueries.hbm.xml вы затем определяете только именованные запросы:

<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<query name="Some.Query.Of.Yours">
<![CDATA[
          from SomeEntity e
          where  e.Property = :propertyValue
          ]]>
</query>
</hibernate-mapping>
...