流畅的nhibernate命名查询,而不使用地图的hbm文件

时间:2010-03-23 01:16:04

标签: nhibernate map fluent named-query

我需要创建一个命名查询,并将其与其中一个地图一起使用,我目前已将其定义为流畅的地图。

是否可以继续使用流畅的地图,并能够在代码中动态创建命名查询?或者,切换到hbm地图是唯一的选择吗?

1 个答案:

答案 0 :(得分:9)

也许我误解了这个问题,但你不必完全切换到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>