C# join子句中某个表达式的类型不正确。调用';时类型推断失败;GroupJoin';
我想得到特定列的总和,所以我在linq中使用了group by,但似乎我必须在join中得到错误。字段的数据类型相同。这不是原始查询,而是堆栈溢出过帐的一个组合查询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
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 }