【发布时间】:2012-09-14 16:04:29
【问题描述】:
如何使用 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:类型的变量“i” 'MyProject.Model.Entities.Item' 从范围''引用,但它是 未定义
在这种情况下,由于某些其他功能存在问题,我无法使用 LINQ。
【问题讨论】:
标签: nhibernate queryover