我有10 000个元素的表。
IQuerable<IEntity> query = dataRep.Get<IEntity>()
.Query();
我需要获取所选obj
的索引(rownum)而不获取所有表项
var obj = query.Where( x => x.Name == "testName")
.FirstOrDefault();
简单的SQL工作正常:
select name, id, r from
(
select name, id, rownum r from collections order by id
) where name = 'testName';
Linq对NHibernate有什么看法?
修改:
我尝试添加到IEntity
类属性RowNumber
并将其映射到hbm
上
<property name="RowNumber" formula="rownum" />
但
之后 var index = query.Where( x => x.Name == "testName")
.Select( x => x.RowNumber)
.FirstOrDefault();
始终获取1
值
答案 0 :(得分:1)
你能直接过滤查询吗?
IQuerable<IEntity> query = dataRep.Get<IEntity>()
.Query()
.FirstOrDefault(x => x.Name == "testName");
编辑:
要获取项目,您可以投射到匿名类型:
var query = (from data in dataRep.Get<IEntity>().Query()
where Name == "testName"
select new
{
id = data.id,
rowNumber = data.rowNumber
}).FirstOrDefault();