摘要:Linq join Argument types do not match(join 子句中其中一個運算式的型別不正確)
接觸好一陣子的Linq
從Linq to SQL 到 Linq to Entities也有一、兩年了@@
期間也用過數次的多欄位的join語法
但近期在撰寫多欄位join語法時,卻發現原本寫法不能用了XDXD
原本寫法如下:
var query = from p in context.a
join q in context.b on new { p.c1 p.c2 } equals new { q.c1 , q.c2}
select new {p,q};
但這樣的寫法卻出現join 子句中其中一個運算式的型別不正確的錯誤訊息
經由MVP同學Terry 的指導看到
LINQ, “Argument types do not match” error, what does it mean, how do I address it?
該篇文章才理解到,原來已經變了寫法了...Orz
所以現在必須改寫成下面的方式:
var query = from p in context.a
join q in context.b on new {c1= p.c1,c2 = p.c2 } equals new { c1 = q.c1 ,c2 = q.c2}
select new {p,q};
如此就大功告成了。