当前位置:  开发笔记 > 编程语言 > 正文

Linq to SQL .Sum()没有组...进入

如何解决《LinqtoSQL.Sum()没有组进入》经验,为你挑选了3个好方法。

我有这样的事情:

var itemsInCart = from o in db.OrderLineItems
                  where o.OrderId == currentOrder.OrderId
                  select new { o.OrderLineItemId, ..., ..., o.WishListItem.Price}

有没有办法做

itemsCart.Sum() //not sure what to pass into the function

得到o.WishListItem.Price的总和还是我必须从数据库中获取另一个iQueryable with ... into?



1> CMS..:

关于什么:

itemsInCart.AsEnumerable().Sum(o=>o.Price);

AsEnumerable有所不同,此查询将在本地执行(Linq To Objects).



2> eglasius..:

您可以:

itemsCart.Select(C => c.Price).SUM();

只打一次db:

var itemsInCart = (from o in db.OrderLineItems
                  where o.OrderId == currentOrder.OrderId
                  select new { o.OrderLineItemId, ..., ..., o.WishListItem.Price}
                  ).ToList();
var sum = itemsCart.Select(c=>c.Price).Sum();

额外的往返保存是值得的:)



3> Jonathan Par..:

尝试:

itemsCard.ToList().Select(c=>c.Price).Sum();

实际上这会表现得更好:

var itemsInCart = from o in db.OrderLineItems
              where o.OrderId == currentOrder.OrderId
              select new { o.WishListItem.Price };
var sum = itemsCard.ToList().Select(c=>c.Price).Sum();

因为您只需从数据库中检索一列.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有