Комплексный поиск с NHibernate - PullRequest
4 голосов
/ 14 января 2009

Мне интересно, какие методы вы используете для сложного поиска с помощью NHibernate?

Я использую Айенде

Что твое? Спасибо за ваши советы и ответы.

Ответы [ 3 ]

1 голос
/ 14 января 2009

Мы используем HQL, но все еще пытаемся обернуть голову вокруг API Criteria для сложных запросов При использовании HQL нам приходится много копировать.

1 голос
/ 15 января 2009

Я использую в значительной степени слишком Айенде, но немного более сложный, что вы хотите сделать, что вы не можете сделать с этим?

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

Кроме того, мы используем Active Record в проекте (поверх Hibernate), и это довольно круто, множество задач упрощается, иногда нехватка документов причиняет боль Cheer

1 голос
/ 14 января 2009

Если у нас сложный динамический поиск, мы обычно создаем объект SearchParameter, а затем передаем его в метод, который создаст для нас наши критерии.

Например, если бы мы искали человека, у нас мог бы быть объект поиска, который похож на это:

public class PersonSearchParameters
{
    public string FirstName {get; set;}
    public string LastName {get; set;}

    public ICriteria GetSearchCriteria()
    {
        DetachedCriteria query = DetachedCriteria.For(typeof (Person));
        //Add query parameters
        Return query;
    }
}

Тогда для каждого типа поиска мы сможем создать отдельные критерии из класса, или мы могли бы иметь несколько классов параметров поиска и связать их вместе

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