linq-to-sql – 在LINQ中返回多个聚合列

前端之家收集整理的这篇文章主要介绍了linq-to-sql – 在LINQ中返回多个聚合列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将以下sql转换为LINQ:
SELECT
    (Select count(BidID)) as TotalBidNum,(Select sum(Amount)) as TotalBidVal
FROM Bids

我试过这个:

from b in _dataContext.Bids
select new { TotalBidVal = b.Sum(p => p.Amount),TotalBidNum = b.Count(p => p.BidId) }

但是得到一个错误“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();

解决方法

你可以尝试一下.变量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();

猜你在找的MsSQL相关文章