Linq到NHibernate订单不工作

Linq到NHibernate订单不工作,nhibernate,linq-to-nhibernate,Nhibernate,Linq To Nhibernate,我正在尝试订购一个Linq到NHibernate查询 var clients = (from c in session.QueryOver<Clients>() orderby c.Nom select c ).List(); var clients=(来自session.QueryOver()中的c) 订购人c.Nom 选择c ).List();

我正在尝试订购一个Linq到NHibernate查询

                var clients = (from c in session.QueryOver<Clients>()
                 orderby c.Nom
                 select c
                ).List();
var clients=(来自session.QueryOver()中的c)
订购人c.Nom
选择c
).List();
它不起作用:List()不是现有的方法。 如果我写下:

            var clients2 = (from c in session.QueryOver<Clients>()
             orderby c.Nom
             select c
            );
            var clients3 = clients2.Asc.List();
var clients2=(来自session.QueryOver()中的c)
订购人c.Nom
选择c
);
var clients3=clients2.Asc.List();
如果使用或不使用orderby,则存在差异。 在前面的代码中,clients2类型是NHibernate.criteria.Lambda.IQueryOverOrderBuilder

            var clients4 = (from c in session.QueryOver<Clients>()
             select c
            );
var clients4=(来自session.QueryOver()中的c)
选择c
);
在本例中,clients4的类型是NHibernate.criteria.QueryOver。
有人知道这个问题吗?

QueryOver不是LINQ API。您应该改用查询扩展方法

var clients = (from c in session.Query<Clients>()
                orderby c.Nom
                select c
               ).List();

我已经听说过ISession类的查询方法,但是Intellisence没有找到它。在我的项目中,我引用了所有必需的dll。它不在NHibernate命名空间中。我相信它在NHibernate.Linq.嗯,我没找到。在所有的例子中,它应该在ISession对象中,也许它在nhibernate 3中被弃用了?它是NH3中新的扩展方法。在以前的版本中,它是一个单独的程序集,方法名为Linq。我用你需要添加到源代码中的using语句编辑了答案。我找到了。我没有添加使用NHibernate.Linq,然后它就可以工作了。非常感谢。
using NHibernate.Linq;