Linq查询 - 返回一个总和

Mik*_*rks 0 c# sql linq

我无法弄清楚如何做以下事情.这纯粹是伪代码:

decimal totalActiveCost = (from i in _context.KeyActives 
                           where i.Pk in (active1fk, active2fk, active3fk, active4fk, active5fk, keyActiveFk) 
                           select sum(i.Cost)...`
Run Code Online (Sandbox Code Playgroud)

然后总结i.Cost.所以基本上,我需要为每个"活动"返回i.Cost - 例如,假设active1fk为1,active2fk为2,依此类推.我需要为每一个获得成本并总结它们.

Hab*_*bib 5

您可以将活动外键设置为List<T>:

List<int> activeFks = new List<int> {1,2,3,4,5,};
var sum = (from i in _context.KeyActives
           where activeFks.Contains(i.PK)
           select i.Cost).Sum();
Run Code Online (Sandbox Code Playgroud)

或者使用方法语法:

var sum = _context.KeyActives
          .Where(r=> activeFks.Contains(r.PK))
          .Sum(r=> r.Cost);
Run Code Online (Sandbox Code Playgroud)