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

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

最佳答案

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

关于nhibernate - 流利的nhibernate named-query,不使用hbm文件作为 map ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2496915/

10-10 16:36