【问题标题】:Linq to SQL - match list to another listLinq to SQL - 将列表匹配到另一个列表
【发布时间】:2013-10-14 17:21:40
【问题描述】:

我有一张桌子公司。还有另一个表 CompanyTypes。

一个公司可以有多种类型。

我想搜索具有选择类型列表(加载到字符串列表中)的公司。

如果公司只有一种类型,我会这样做:

Where searchTypes.Contains(Company.Type)

但是我如何执行更复杂的查询以在另一个表中获取具有所需类型的公司?

【问题讨论】:

  • 我认为您可能需要提供更多细节(即使您更改名称以掩盖机密信息)。那么最有可能出现的解决方案就是使用 join 关键字。

标签: c# .net linq linq-to-sql


【解决方案1】:

试试这个(从数据中获取 CompanyTypes 和 Companies):

IEnumerable<string> companyTypes = data.CompanyTypes; // filter this as needed
IEnumerable<Company> companiesOfType = data.Companies.Where(c => c.Types.Any(t => companyTypes.Contains(t)));

这将为您提供至少具有一种已过滤公司类型的所有公司。如果您希望所有公司都具有所有过滤的公司类型,您可以改为这样做:

IEnumerable<string> companyTypes = data.CompanyTypes; // filter this as needed
IEnumerable<Company> companiesOfType = data.Companies.Where(c => c.Types.All(t => companyTypes.Contains(t)));

【讨论】:

  • 查询提供者能否翻译这样的查询?
猜你喜欢
  • 1970-01-01
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 2021-07-12
  • 2019-10-27
  • 1970-01-01
相关资源
最近更新 更多