如何实现EF多查询条件的AND关联:筛选Companies与Component目标数据
合并LINQ查询实现AND逻辑
直接将两个查询的筛选条件合并到同一个where子句中,同时保留表关联逻辑即可实现需求,示例代码如下:
var viewModel = from c in _context.Companies join co in _context.Component on c.id equals co.company_id // 同时满足两个条件:公司类型筛选 AND Component属性筛选 where // 保留原查询的公司类型多值匹配逻辑 (c.company_type.Contains(checkedBoxes[...]) || c.company_type.Contains(...) || c.company_type.Contains(...)) // 新增Component属性的筛选条件,替换为你需要的属性和指定值 && (co.TargetProperty == "指定值" || co.OtherProperty == 123) select new Joincco { Companies = c, Component = co };
关键说明:
- 保留原有的
join语句,确保Companies和Component表通过company_id关联 where子句用&&连接两组条件,实现同时满足的AND逻辑- 第一组是原查询的公司类型筛选(多个
Contains用||组合,保持“任一匹配即符合”的原有逻辑) - 第二组是Component的属性筛选,根据实际需求替换为具体的属性和判断规则,比如
co.Status == "Enabled"、co.Price > 50等
- 第一组是原查询的公司类型筛选(多个
- 最终构造
Joincco对象时,同时赋值Companies和Component属性,保证返回数据的完整性
内容的提问来源于stack exchange,提问作者E__
相关产品推荐
相关产品推荐

