使用 NHibernate 将本机 sql 映射到实体
Mapping native sql to Entity with NHibernate
是否可以使用 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>
结果有它自己的 hbm.xml。是否可以实现我想要的效果?
有一个功能,叫做<subselect>
。在这里查看更多内容
How to map an NHibernate entity to a query
这可以应用于 <class>
以及 <bag>
。这可能是如何在 MyEntity
的包上使用它的方式,其中包含 Languages
<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>
这当然应该用于只读(不可变)解决方案
是否可以使用 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>
结果有它自己的 hbm.xml。是否可以实现我想要的效果?
有一个功能,叫做<subselect>
。在这里查看更多内容
How to map an NHibernate entity to a query
这可以应用于 <class>
以及 <bag>
。这可能是如何在 MyEntity
的包上使用它的方式,其中包含 Languages
<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>
这当然应该用于只读(不可变)解决方案