Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何组合LINQ查询和列表?_C#_Sql_Linq - Fatal编程技术网

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
a
HashSet
设置为有效的
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);