加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 06:21:22 所属栏目:MsSql教程 来源:网络整理
导读:我想将以下SQL转换为LINQ: SELECT (Select count(BidID)) as TotalBidNum,(Select sum(Amount)) as TotalBidValFROM Bids 我试过这个: from b in _dataContext.Bidsselect new { TotalBidVal = b.Sum(p = p.Amount),TotalBidNum = b.Count(p = p.BidId) }
我想将以下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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读