请求将LINQ查询转换为LINQ扩展方法(附代码示例)
嗨,这就帮你把这个LINQ查询表达式转换成扩展方法的形式,逻辑和你原来的查询完全一致:
var fullLastHb = buklinq.DeviceHeartbeat .Join( lastHbTime, hb => new { hb.IdDevice, hb.Timestamp }, // 对应原查询中hb的连接键 hb2 => new { hb2.IdDevice, hb2.Timestamp }, // 对应原查询中hb2的连接键 (hb, hb2) => hb // 最终选择hb,和原查询的select hb保持一致 );
稍微补充下细节:
- LINQ查询语法里的
join本质上就是调用Join扩展方法,这里的匿名类型键能正确匹配,因为它们的属性名和类型完全相同,所以等值连接的逻辑和你原来的写法没有区别。 - 如果你后续需要调整返回结果,只需要修改最后一个参数(结果选择器)就可以了,比如想返回合并后的对象,就改成
(hb, hb2) => new { hb, hb2 }这类形式。
内容的提问来源于stack exchange,提问作者Asheel
相关产品推荐
相关产品推荐

