Используйте SQL-запрос для заполнения свойства в файле отображения nHibernate - PullRequest
2 голосов
/ 17 июня 2010

У меня есть объект, который содержит свойство, являющееся результатом оператора 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 ]

4 голосов
/ 14 июля 2010

Это обсуждается в сообщении в блоге Айенде :

формула - это способ указать любой произвольный SQL, который мы хотим связать со свойством.Очевидно, что это значение только для чтения, и это то, что мы будем использовать в довольно редких случаях.Тем не менее, иногда это может быть очень полезно.

Пример:

<property name="BookCount" type="int" formula="(SELECT COUNT(*) FROM BOOKS WHERE BOOKS.LIBRARY_ID = ID)" />
1 голос
/ 17 июня 2010

Используйте атрибут formula в вашей собственности.

См. Здесь пример: Фильтр формулы свойства NHibernate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...