获取项目索引(ROWNUM) [英] Get item index (rownum)

查看:221
本文介绍了获取项目索引(ROWNUM)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有10个元素表

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



我需要的选择的索引(ROWNUM) OBJ 没有得到所有的表项

 var obj = query.Where( x => x.Name == "testName")
                .FirstOrDefault();



在简单的SQL做工精细:

The simple sql work fine :

 select name, id, r from 
 (
     select name, id, rownum r from collections order by id
 ) where name = 'testName';

如何在LINQ的做NHibernate的?

How do this in Linq to NHibernate ?

编辑:

我试图添加到 IEntity 类属性 ROWNUMBER

  <property name="RowNumber" formula="rownum" />



但经过

But after

  var index = query.Where( x => x.Name == "testName")
                   .Select( x => x.RowNumber)
                   .FirstOrDefault();



获取总是 1

推荐答案

你能不只是直接过滤查询?

Can you not just filter the query directly?

IQuerable<IEntity> query = dataRep.Get<IEntity>()
                                  .Query()
                                  .FirstOrDefault(x => x.Name == "testName");



编辑:

要获得该项目你可以投射到一个匿名类型:

To get the item you can project into an anonymous type:

var query = (from data in dataRep.Get<IEntity>().Query()
             where Name == "testName"
             select new
             {
                 id = data.id,
                 rowNumber = data.rowNumber
             }).FirstOrDefault();

这篇关于获取项目索引(ROWNUM)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆