获取项目指数(ROWNUM)(Get item index (rownum))

2019-09-16 15:35发布

我有10个000元素表。

 IQuerable<IEntity> query = dataRep.Get<IEntity>()
                                   .Query();

我需要选择的指数(ROWNUM) obj没有得到所有的表项目

 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的值

Answer 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();


文章来源: Get item index (rownum)