我有一个对象,其中包含一个属性,该属性是SQL语句的结果。如何将SQL语句添加到我的nHibernate映射文件中?
示例对象:
public class Library{
public int BookCount
{
get;
set;
}
}
示例映射文件:
<hibernate-mapping>
<class name="Library" table="Libraries">
<property name="BookCount" type="int"> <- This is where I want the SQL query to populate the value. ->
</class>
</hibernate-mapping>
示例SQL查询:
SELECT COUNT(*) FROM BOOKS WHERE BOOKS.LIBRARY_ID = LIBRARIES.ID
答案 0 :(得分:4)
这在Ayende's blog post中讨论:
formula是一种指定我们想要与属性关联的任意SQL的方法。显然,这是一个只读值,它是我们在相当罕见的场合使用的东西。不过,它有时非常有用。
示例:
<property name="BookCount" type="int" formula="(SELECT COUNT(*) FROM BOOKS WHERE BOOKS.LIBRARY_ID = ID)" />
答案 1 :(得分:1)
使用您房产的formula
属性。
请点击此处查看示例:NHibernate property formula filter