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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
C# join子句中某个表达式的类型不正确。调用';时类型推断失败;GroupJoin';_C#_Linq - Fatal编程技术网

C# join子句中某个表达式的类型不正确。调用';时类型推断失败;GroupJoin';

C# join子句中某个表达式的类型不正确。调用';时类型推断失败;GroupJoin';,c#,linq,C#,Linq,我想得到特定列的总和,所以我在linq中使用了group by,但似乎我必须在join中得到错误。字段的数据类型相同。这不是原始查询,而是堆栈溢出过帐的一个组合查询 from T1 in TXPYTRANs join T11 in ((from p in TXPYTRANs // geting error right here group p by new { p.TRANTYPE, p.BILLYR, p.BILLNO } into g

我想得到特定列的总和,所以我在linq中使用了group by,但似乎我必须在join中得到错误。字段的数据类型相同。这不是原始查询,而是堆栈溢出过帐的一个组合查询

from T1 in TXPYTRANs
join T11 in ((from p in TXPYTRANs // geting error right here
              group p by new { p.TRANTYPE, p.BILLYR, p.BILLNO } into g
              select new 
              { 
                  TRANAMT = g.Sum(b => b.TRANAMT), 
                  TRANPENALTY = g.Sum(b => b.TRANPENALTY), 
                  TRANINTEREST = g.Sum(b => b.TRANINTEREST),
                  TRANTYPE = g.Select(s => s.TRANTYPE),
                  BillYear = g.Select(s => s.BILLYR),
                  BillNumber = g.Select(s => s.BILLNO)
              }).Take(100))
on new { BYr = T1.BILLYR, BNo = T1.BILLNO }
equals new { BYr = T11.BillYear, BNo = T11.BillNumber } into T12
from T13 in T12
select new
{
    TranType = T13.TRANTYPE,
    TranAmt = T13.TRANAMT,
    TranPenalty = T13.TRANPENALTY,
    TranInterest = T13.TRANINTEREST,
    BillYr = T13.BillYr,
    BillNo = T13.BillNo
}
你需要

BillYear = g.Select(s=>s.BILLYR),
BillNumber = g.Select(s=>s.BILLNO)
将来

此时,您的
加入
选择器

T1 => new { BYr = T1.BILLYR, BNo = T1.BILLNO }
T11 => new { BYr = T11.BillYear, BNo = T11.BillNumber }
第二个的属性是第一个属性类型的
IEnumerable
s,而不是与类型匹配

TRANTYPE
可能应该是相同的。)

T1 => new { BYr = T1.BILLYR, BNo = T1.BILLNO }
T11 => new { BYr = T11.BillYear, BNo = T11.BillNumber }