我需要创建一个命名查询,并将它与其中一个 map 一起使用,我目前已将其定义为流畅的 map 。
是否可以继续使用流畅的 map ,并能够在代码中动态创建命名查询?或者,切换到 hbm map 是唯一的选择吗?
最佳答案
也许我误解了这个问题,但您不必完全切换到 hbm 映射。
您可以继续使用 fluent 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 命名查询,而不使用 map 的 hbm 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2496915/