BKa*_*una 9 aggregate linq-to-sql
我想将以下SQL转换为LINQ:
SELECT
(Select count(BidID)) as TotalBidNum,
(Select sum(Amount)) as TotalBidVal
FROM Bids
Run Code Online (Sandbox Code Playgroud)
我试过这个:
from b in _dataContext.Bids
select new { TotalBidVal = b.Sum(p => p.Amount), TotalBidNum = b.Count(p => p.BidId) }
Run Code Online (Sandbox Code Playgroud)
但是得到一个错误"Bids不包含"Sum"的定义,并且没有可以找到接受"Bids"类型的第一个参数的扩展方法"Sum".
我怎么能在LINQ中这样做?
谢谢
结论如下:
最后的答案是:
var ctx = _dataContext.Bids;
var itemsBid = (from b in _dataContext.Bids
select new { TotalBidVal = ctx.Sum(p => p.Amount), TotalBidNum = ctx.Count() }).First();
Run Code Online (Sandbox Code Playgroud)
N R*_*ing 20
您可以使用编写此查询GroupBy.Lambda表达式如下:
var itemsBid = db.Bids
.GroupBy( i => 1)
.Select( g => new
{
TotalBidVal = g.Sum(item => item.Amount),
TotalBidNum = g.Count(item => item.BidId)
});
Run Code Online (Sandbox Code Playgroud)
你可以尝试一下.变量b是一个实体(对于每次迭代),而ctx是一个具有所需扩展方法的实体集.
var ctx = _dataContext.Bids;
var result = ctx.Select(x => new {TotalBidVal = ctx.Sum(p => p.Amount),TotalBidNum = ctx.Count(p => p.BidId)}).First();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6373 次 |
| 最近记录: |