使用NHibernate进行复杂搜索

时间:2009-01-13 21:50:11

标签: nhibernate search

我很好奇您使用NHibernate进行复杂搜索的方法是什么?

我正在使用Ayende's

你的是什么? 感谢您的建议和解答。

3 个答案:

答案 0 :(得分:1)

如果我们有复杂的动态搜索,我们通常会构建一个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;
    }
}

然后,对于每种类型的搜索,我们将能够从类中创建单个条件,或者我们可以拥有多个搜索参数类并将它们链接在一起

答案 1 :(得分:1)

我们使用HQL,但我们仍然试图围绕Criteria API包围复杂查询。使用HQL时,我们必须管理大量重复。

答案 2 :(得分:1)

我使用Ayende的东西太复杂了,你想做什么,你不能做到这一点?

基本上我们添加的是我们有一个界面,我们在其中定义我们想要搜索的所有字段,当我们要进行搜索时我们会调用它,这意味着我们可以轻松地更改我们要搜索的内容。 / p>

我们也在项目中使用Active Record(在Hibernate之上)并且非常酷,大量的任务得到简化,你有时缺乏文档 欢呼