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