Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
分组依据、求和、加入Linq_Linq - Fatal编程技术网

分组依据、求和、加入Linq

分组依据、求和、加入Linq,linq,Linq,我有一个简单的sql查询: select c.LastName, Sum(b.Debit)- Sum(b.Credit) as OpenBalance from Balance as b inner join Job as j on (b.Job = j.ID) inner join Client as c on (j.Client = c.ID) Group By c.LastName 我正在尝试将其转换为在linq中工作,如下所示: from b in Balance join j in

我有一个简单的sql查询:

select c.LastName, Sum(b.Debit)- Sum(b.Credit) as OpenBalance from Balance as b
inner join Job as j on (b.Job = j.ID)
inner join Client as c on (j.Client = c.ID)
Group By c.LastName
我正在尝试将其转换为在linq中工作,如下所示:

from b in Balance
join j in Job on b.Job equals j.ID
join c in Client on j.Client equals c.ID
group b by new { c.LastName } into g
select new { 
     Name = c.Lastname, 
     OpenBalance = g.Sum(t1 => t1.Credit) 
       }
但当我尝试在LINQPad中运行它时,我得到以下消息:

中不存在名称“c” 当前上下文

并在
selectnew
语句中突出显示
c.Lastname

在此方面的任何帮助都将不胜感激。
谢谢。

好吧,您已经按照
c.LastName
b
进行了分组。因此,在分组操作之后,您将处理
g
,这是一个分组,元素类型为
b
,键类型为
c.LastName
。很可能您只需要:

select new { 
    Name = g.Key,
    OpenBalance = g.Sum(t1 => t1.Credit) 
}

。。。但是,如果您需要了解
c
的任何其他方面,则需要更改分组表达式。

那么,您已经按照
c.LastName
b
进行了分组。因此,在分组操作之后,您将处理
g
,这是一个分组,元素类型为
b
,键类型为
c.LastName
。很可能您只需要:

select new { 
    Name = g.Key,
    OpenBalance = g.Sum(t1 => t1.Credit) 
}
。。。但是,如果需要了解
c
的任何其他方面,则需要更改分组表达式