【发布时间】:2013-10-07 14:31:09
【问题描述】:
我在以下 linq 查询(第 2 行)中收到以下错误,我不明白如何更正。
连接子句中的一个表达式的类型不正确。 调用“加入”时类型推断失败。
equals 表达式中的所有 2 个变量都是 (string),所以我不确定为什么会导致此错误。有人有什么建议吗?
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 };
【问题讨论】:
-
我们能得到类型类定义的sn-ps吗?
-
虽然看起来它应该工作,但它会像
on t1.id equals t2.id和后来的on t2.Sta_ID equals t3.Sta_ID一样简单。 -
(同样你也可以
select t1.Name- 你不需要到处使用匿名类型。)你能得到一个加入工作吗?哦,我注意到您的where子句目前无效 - 您想要where t3.Status == "INAKTIV"- 请注意==而不是=。 -
以下每个表达式的类型是什么:
t1.id、t2.id、t2.Sta_ID、Sta_ID?