rom*_*n m 27 c# .net-3.5 linq-to-sql
我有这样的事情:
var itemsInCart = from o in db.OrderLineItems
where o.OrderId == currentOrder.OrderId
select new { o.OrderLineItemId, ..., ..., o.WishListItem.Price}
Run Code Online (Sandbox Code Playgroud)
有没有办法做
itemsCart.Sum() //not sure what to pass into the function
Run Code Online (Sandbox Code Playgroud)
得到o.WishListItem.Price的总和还是我必须从数据库中获取另一个iQueryable <T> with ... into?
CMS*_*CMS 64
关于什么:
itemsInCart.AsEnumerable().Sum(o=>o.Price);
Run Code Online (Sandbox Code Playgroud)
AsEnumerable有所不同,此查询将在本地执行(Linq To Objects).
egl*_*ius 16
您可以:
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();
Run Code Online (Sandbox Code Playgroud)
额外的往返保存是值得的:)
尝试:
itemsCard.ToList().Select(c=>c.Price).Sum();
Run Code Online (Sandbox Code Playgroud)
实际上这会表现得更好:
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();
Run Code Online (Sandbox Code Playgroud)
因为您只需从数据库中检索一列.
| 归档时间: |
|
| 查看次数: |
128458 次 |
| 最近记录: |