C# 具有Group By和rownum的LINQ
我有一个如下所示的Oracle SQL查询,希望LINQ相等C# 具有Group By和rownum的LINQ,c#,linq,oracle,C#,Linq,Oracle,我有一个如下所示的Oracle SQL查询,希望LINQ相等 SELECT ROWNUM rn, tmp.* FROM (SELECT tbl.name, SUM(tbl.debit) FROM table1 tbl GROUP BY tbl.name) 非常感谢我想你可以这样做,使用索引的重载 这里,rn表示这个索引,它是。。。行号 var result = <someWayToGetTa
SELECT ROWNUM rn,
tmp.*
FROM (SELECT tbl.name,
SUM(tbl.debit)
FROM table1 tbl
GROUP BY tbl.name)
非常感谢我想你可以这样做,使用
索引的重载
这里,rn
表示这个索引,它是。。。行号
var result = <someWayToGetTable1>.GroupBy(m => m.Name)
.Select(m => new {
name = m.Key,
allDebit = m.Sum(x => x.debit),
})
.ToList()
.Select((m, rn) => new {
m.name,
m.allDebit,
rn
});
var result=.GroupBy(m=>m.Name)
.选择(m=>new{
name=m.Key,
allDebit=m.Sum(x=>x.debit),
})
托利斯先生()
.选择((m,rn)=>新建{
m、 名字,
m、 allDebit,
注册护士
});
部分语法不流畅的版本
var queryable= from item in <Table1>
group item by item.name into g
select new {
name =m.Key,
allDebit = m.Sum(x => x.debit
}
var result = queryable.ToList()
.Select((g, rn) => new {
g.name,
g.allDebit
rn
});
var queryable=来自中的项
按item.name将项分组到g中
选择新的{
name=m.Key,
allDebit=m.Sum(x=>x.debit
}
var result=queryable.ToList()
.选择((g,rn)=>新建{
g、 名字,
g、 allDebit
注册护士
});
我想你想要这样的东西:
YourDataContext.tbls.GroupBy(a => a.name)
.select((a, index) => new
{
rn = index,
name = a.Key,
debitSum = a.Sum(b => b.debit)
});
plz在非链接方法中回答。使用Expression@lazyberezovsky必须承认我不确定这一点。对于ehsan,看看你能做什么。并非所有的事情都可以用不流畅的语法来完成(据我所知)。我尝试var model=(_db2.Persons.Select((x,index)=>new{rn=index+1,col1=x.Id}).ToList();但是现在,我有一个错误:LINQ to Entities无法识别方法'System.LINQ.IQueryable`1 method,并且该方法无法转换为存储表达式。@ehsan请参阅“已编辑的第二版本”似乎对于Oracle,您无法在db级别执行此操作,因此需要首先枚举…我尝试var model=(_db2.Persons.Select((x,index)=>new{rn=index+1,col1=x.Id})).ToList();但是现在,我有一个错误:LINQ to Entities无法识别方法'System.LINQ.IQueryable'1 method,并且无法将此方法转换为存储表达式。