使用NHibernate将本机sql映射到实体
本文关键字:映射 实体 sql 本机 NHibernate 使用 | 更新日期: 2023-09-27 18:20:13
是否可以使用NHibernate将原始sql映射到实体?
如下所示:
C#实体:
public virtual IList<Result> MyResult { get; set; }
Hbm.xml:
<bag name="MyResult">
<my-custom-sql type="Result">
SELECT * FROM ResultTable where MyComplexCondition = true
</my-custom-sql>
</bag>
Result有自己的hbm.xml。有可能实现我想要实现的目标吗?
有一个功能,称为<subselect>
。点击此处查看更多
如何将NHibernate实体映射到查询
这可以应用于<class>
和<bag>
。这可能是如何在具有Languages
集合的MyEntity
的袋子上使用它的方式;
<bag name="Languages" lazy="true" batch-size="25"
mutable="false" >
<subselect>
SELECT MyEntity_ID, Language_ID, IsNative FROM Languages
</subselect>
<key column="MyEntity_ID" />
<composite-element class="Language">
<parent name="MyEntity"/>
<many-to-one not-null="true" name="Language" class="Language" column="Language_ID" />
<property not-null="true" name="IsNative" column="IsNative"/>
</composite-element>
</bag>
当然,这应该用于只读(不可变)解决方案