我在下面的linq查询(第2行)上收到以下错误,我不明白如何纠正它。
join子句中某个表达式的类型不正确。 调用“加入”时类型推断失败。
equals表达式中的所有2个变量都是(字符串)所以我不确定为什么会出现这个错误。有没有人有任何建议?
var studentlist = from t1 in Extern
join t2 in EMPstatus //m receiving the error here
on new { t1.id} equals new { id= t2.id }
join t3 in StatusofEmp
on new { t2.Sta_ID } equals new {Sta_ID = t3.Sta_ID }
where t3.Status = "INAKTIV"
select new { t1.Name };
答案 0 :(得分:0)
使用join
时无需创建新的匿名对象。
尝试这样的事情:
var studentlist =
from t1 in Extern
join t2 in EMPstatus
on t1.id equals t2.id
join t3 in StatusofEmp
on t2.Sta_ID equals t3.Sta_ID
where t3.Status = "INAKTIV"
select new { t1.Name };
答案 1 :(得分:0)
根据你的描述,我猜你的一个id列可以为空,另一个不可为空。检查哪一个可以为空,假设t1 id是可空的,t2 id不可为空,那么在join condition set bellow syntax {{ 1}}
希望上面的语法有助于解决您的问题。
id=(t1.id??0) equals t2.id