首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Lambda表达式查询列表中的exists

使用Lambda表达式查询列表中的exists
EN

Stack Overflow用户
提问于 2017-07-12 17:26:34
回答 1查看 91关注 0票数 1

在我的项目中,我需要返回一个与数组中提供的型号Id不匹配的汽车数据列表。我不确定我将如何让我的查询工作。到目前为止,我有以下几点:

代码语言:javascript
复制
var IdList = new List<int> { 60,61,62, 63, 64, 65 };
var query = Context.ManufacturersTable.Where(m => m.Date == date && m.CountryToship = country && m.ExportOnly == false);
if(query.Count() > 0)
    query = query.Where(x => x.CarMoreInfoTable.CarModelTable.Where(f => IdList.Contains(f.ModelId))) //Cannot convert lambda expression to intended delegate type error here

return query

正如您在上面的查询中所看到的,我有3个表,所有表都相互链接。但是,请告诉我如何查询给定数组中不包含Id的所有数据?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-07-12 17:35:22

你有一个错误,因为这里的问题是second ' Where‘,first希望委托方法返回bool而不是IEnumerable。(评论编辑)我认为你必须否定:

IdList.Contains(f.ModelId)

编辑

如果您需要汽车数据(我将假设它在CarModel类中),那么您首先需要将Where更改为SelectMany (我们希望将多个集合合并为一个集合),并取消内部表达式(带有contains)。

代码语言:javascript
复制
var result = query
.SelectMany(x => x.CarMoreInfoTable.CarModelTable
                  .Where(f => !IdList.Contains(f.ModelId))).ToList();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45053714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档