Ser*_*lov 6 nhibernate sql-order-by
我需要NHibernate来执行这样的查询:
SELECT *
FROM Users
ORDER BY Func(FirstName, LastName)
Run Code Online (Sandbox Code Playgroud)
Standart NHibernate Order类不允许这样做.还有别的办法吗?
事实上,命名查询和HQL不适合作为解决方案.
编辑:我发现,有可能对SQL做:
SELECT *, Func(FirstName, LastName) AS FullName
FROM Users
ORDER BY FullName
Run Code Online (Sandbox Code Playgroud)
那么,也许可以在标准中添加额外的字段(或者可能是投影),就像在这个例子中一样?
Phi*_*ill 14
首先,您不需要创建"全名",按两列排序.你可以这样做:
SELECT *
FROM Users
ORDER BY FirstName, LastName
Run Code Online (Sandbox Code Playgroud)
-编辑
或者,如果要定义排序,可以在每列之后包含"asc/desc":
SELECT *
FROM Users
ORDER BY FirstName DESC, LastName ASC
Run Code Online (Sandbox Code Playgroud)
- 结束编辑
至于NHibernate中的排序,如果你使用的是QueryOver,你可以这样做:
var result = Session.QueryOver<Users>()
.OrderBy(x => x.FirstName).Desc
.ThenBy(x => x.LastName).Desc
.List();
Run Code Online (Sandbox Code Playgroud)
至于Criteria,我认为(不是100%肯定)你可以这样做:
var result = Session.CreateCriteria(typeof(Users))
.AddOrder(Order.Desc("FirstName"))
.AddOrder(Order.Desc("LastName"))
.List<Users>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19427 次 |
| 最近记录: |