如何使用 QueryOver API 执行以下 LINQ to NHibernate 查询。这会从数据库中获取项目的所有记录的列表,并将状态为“已返回”的项目放在列表的末尾。状态是一个 Enum,它映射到数据库中的 nvarchar。
var workList = session.Query<Item>()
.OrderBy(i=> i.Status == Status.Returned ? 1 : 0)
.ToList();
SQL 等价物是
SELECT *
FROM Item
ORDER BY case when Status='Returned' then 1 else 0 end
我当然试过
var workList = session.QueryOver<Item>()
.OrderBy(i => i.Status == Status.Returned ? 1 : 0).Asc
.ToList();
但我得到以下
InvalidOperationException:从范围“”引用的“MyProject.Model.Entities.Item”类型的变量“i”,但未定义
在这种情况下,由于某些其他功能存在问题,我无法使用 LINQ。