关于Dynamic Linq GroupJoin多条件关联的技术咨询
Dynamic Linq GroupJoin 多条件连接实现
当然支持双条件(甚至多条件)的分组连接,只需要把连接条件从单个字段改成匿名对象形式,同时匹配多个字段即可。
修改后的代码如下:
// 多条件GroupJoin:同时匹配REventID=EventID和RStatus=StatusID result = result.AsQueryable().GroupJoin( entitiesQuerySecundary.AsQueryable(), "new(REventID, RStatus)", // 外表的连接字段组合 "new(EventID, StatusID)", // 内表的匹配字段组合 $"new(outer as p, inner as s)" ); // 后续左连接的SelectMany、Distinct逻辑保持不变 result = result.SelectMany("s.DefaultIfEmpty()", $"new({string.Join(", ", selectedPropertyNames)})").Distinct();
关键说明
- Dynamic Linq允许通过
new(字段1, 字段2)的语法创建匿名对象作为连接键,只要内外表的匿名对象字段顺序、类型完全匹配,就能实现多条件等值连接。 - 需确保
REventID与EventID类型一致,RStatus与StatusID类型一致,否则会出现匹配失败的情况。
内容的提问来源于stack exchange,提问作者Sergio Marchant
相关产品推荐
相关产品推荐

