[对不起,如果重复] 我找不到合适的解决方案,所以我决定问一个问题。
我有一个对象companies
,它返回元素列表。
我想写一个查询,它将选择我们列表中的所有CompanyId
。我不想只使用FirstOrDefault()
选择一条记录。
示例:
var companiesSummary = _context.Company
.Where(c => c.CompanyId == companies.Select(cs => cs.ID))
.Include(country => country.Country)
我该如何应对?你有什么想法吗?
答案 0 :(得分:1)
从内存列表中选择公司的ID,然后将其传递到where方法中的查询中:
var ids = companies.Select(cs => cs.ID).ToList();
var companiesSummary =
_context.Company
.Where(c => ids.contains(c.ID))
.Include(country => country.Country)
答案 1 :(得分:0)
假设您的companies
包含要与ID
进行比较的Company.CompanyId
属性的对象列表,您的查询应如下所示
int[] ids = companies.Select(cs => cs.ID).ToArray();
var companiesSummary = _context.Company
.Where(c => ids.Contains(c.CompanyId))
.Include(company => company.Country);
答案 2 :(得分:-1)
var matchingCompanies = companies.Where(c => companyIds.Contains(c.Id))
为companyIds
提供HashSet<T>
Contains
。