使用linq对两个表中的多个列进行简单连接的问题
本文关键字:问题 连接 简单 linq 使用 两个 | 更新日期: 2023-09-27 18:07:42
我试图在三列上连接两个表,我得到一个错误:
error CS1941: The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'Join'.
我不知道发生了什么事。我检查了st_year
, st_month
, st_day
, year
, month
和day
的类型,它们都是int
,所以我不应该得到错误。
代码是:
var q = from obj in objTimeLine
join ev in eventsTimeLine
on new {obj.st_year, obj.st_month, obj.st_day} equals new {ev.year, ev.month, ev.day}
select new {obj, ev};
如果我这样做了:
var q = from obj in objTimeLine
join ev in eventsTimeLine
on obj.st_year equals ev.year
select new {obj, ev};
然后没有错误,一切都很好,但我不知道如何加入比其他2列。
您需要确保匿名类型具有相同的属性名称,如下所示:
on new { Year = obj.st_year, Month = obj.st_month, Day = obj.st_day}
equals new { Year = ev.year, Month = ev.month, Day = ev.day}