我有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