0
我有一个表公司。和另一个表CompanyTypes。Linq to SQL - 匹配列表到另一个列表
一家公司可以有多种类型。
我想用选择的类型列表搜索公司(加载到字符串列表中)。
如果公司只有一种类型,我会做如下:
Where searchTypes.Contains(Company.Type)
但如何执行更复杂的查询来获取企业与另一个表所需的类型?
我有一个表公司。和另一个表CompanyTypes。Linq to SQL - 匹配列表到另一个列表
一家公司可以有多种类型。
我想用选择的类型列表搜索公司(加载到字符串列表中)。
如果公司只有一种类型,我会做如下:
Where searchTypes.Contains(Company.Type)
但如何执行更复杂的查询来获取企业与另一个表所需的类型?
试试这个(你来自哪里,您的数据得到CompanyTypes和公司):
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)));
查询提供者是否能够翻译这样的查询? – Servy
我想你可能需要给更多的细节(即使你更改名称掩盖机密信息)。那么最有可能出现的解决方案就是使用join关键字。 – philologon