2009-08-14 59 views
0

假设您有一个名为Articles的表。用nhibernate动态订购

它具有以下的列: ID,姓名,体,创建,修改,浏览量等

使用单一方法,才有可能拉的文章的列表,并把它传递哪一列我想要点餐?还有方向,即desc或asc。

回答

3

我不知道你所说的“单一方法”的评论是什么意思,但你可以使用Criteria做到这一点:

IList articles = session.CreateCriteria(typeof(Article)) 
    .AddOrder(Order.Asc("Name")) 
    .List(); 

很明显,你可以在一个方法把这个包,并通过属性的名称你想要按照参数以及排序方向进行排序。后者由Order.Asc()Order.Desc()指定。

+0

当然,如果您更习惯使用HQL,则相当于“从名称为asc的文章顺序” – 2009-08-14 21:39:23

+1

@ joshua.ewer - 您是对的,而使用HQL通常是更好的方法。但是,在这种情况下,HQL将不得不动态生成,这是不理想的。 – ChssPly76 2009-08-14 21:51:49