使用SQL查询填充nHibernate映射文件中的属性

时间:2010-06-17 15:01:15

标签: nhibernate

我有一个对象,其中包含一个属性,该属性是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

2 个答案:

答案 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