我有10 000个元素的表格。获取物品索引(rownum)
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
和
<property name="RowNumber" formula="rownum" />
上hbm
映射此但经过
var index = query.Where(x => x.Name == "testName")
.Select(x => x.RowNumber)
.FirstOrDefault();
总是得到1
值
我认为甲骨文? 'rownum'基于结果集中行的位置,所以如果它在只返回一个结果的查询的顶层调用,它只能等于'1'。 – 2012-04-19 13:25:54
@Damien_The_Unbeliever。你是对的。如果block'where name ='testName''与'rownum'处于同一级别 - 结果总是为'1' – Kronos 2012-04-19 13:36:49
我必须删除一个标签才能添加Oracle - 我选择了.NET,但是您可能拥有不同的意见;但是这要归结为NHbernate为了产生特定于Oracle的特定SQL,所以真的需要这两种技术之间的重叠,以期获得一些专业知识。 – 2012-04-19 13:58:29