C# 如何组合LINQ查询和列表?
[如果是重复的话,很抱歉] 我找不到合适的解决办法,所以我决定问一个问题 我有一个对象C# 如何组合LINQ查询和列表?,c#,sql,linq,C#,Sql,Linq,[如果是重复的话,很抱歉] 我找不到合适的解决办法,所以我决定问一个问题 我有一个对象companys,它返回元素列表 我想写一个查询,选择我们列表中的所有CompanyId。我不想使用FirstOrDefault()只选择一条记录 示例: var companiesSummary = _context.Company .Where(c => c.CompanyId == companies.Select(cs => cs.ID))
companys
,它返回元素列表
我想写一个查询,选择我们列表中的所有CompanyId
。我不想使用FirstOrDefault()
只选择一条记录
示例:
var companiesSummary = _context.Company
.Where(c => c.CompanyId == companies.Select(cs => cs.ID))
.Include(country => country.Country)
我该怎么应付呢?你有什么想法吗?从内存列表中选择公司的ID,然后通过where方法将其传递到查询中:
var ids = companies.Select(cs => cs.ID).ToList();
var companiesSummary =
_context.Company
.Where(c => ids.contains(c.ID))
.Include(country => country.Country)
将
CompanyId
aHashSet
设置为有效的Contains
假设您的公司
包含一个带有ID
属性的对象列表,您希望与公司进行比较。CompanyId
,您的查询应该如下
int[] ids = companies.Select(cs => cs.ID).ToArray();
var companiesSummary = _context.Company
.Where(c => ids.Contains(c.CompanyId))
.Include(company => company.Country);
你试过另一种方法吗?e、 g<代码>来自公司中的c。。。等等。?是否要查询
公司中有id
的所有公司。选择(cs=>cs.id)
或?谢谢大家的回答@Stefan在我的例子中,它不会给出预期的结果。是的@Aominè,所有的都是。“让companyID成为有效包含的哈希集”,为什么?这将被转换为SQL,它与公司ID的类型完全没有区别问题并没有说它将转换为SQL,但感谢Downvot使用包含显然来自实体框架,就像使用\u context.Company
一样。这个问题从来没有提到实体框架,上下文是一个非常常见的变量名。我试图找到应该如何解决它,但没有得到预期的结果。这就是我要找的,谢谢。:-)
int[] ids = companies.Select(cs => cs.ID).ToArray();
var companiesSummary = _context.Company
.Where(c => ids.Contains(c.CompanyId))
.Include(company => company.Country);