在我的项目中,我需要返回一个与数组中提供的型号Id不匹配的汽车数据列表。我不确定我将如何让我的查询工作。到目前为止,我有以下几点:
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的所有数据?
谢谢
发布于 2017-07-12 17:35:22
你有一个错误,因为这里的问题是second ' Where‘,first希望委托方法返回bool而不是IEnumerable。(评论编辑)我认为你必须否定:
IdList.Contains(f.ModelId)
编辑
如果您需要汽车数据(我将假设它在CarModel类中),那么您首先需要将Where更改为SelectMany (我们希望将多个集合合并为一个集合),并取消内部表达式(带有contains)。
var result = query
.SelectMany(x => x.CarMoreInfoTable.CarModelTable
.Where(f => !IdList.Contains(f.ModelId))).ToList();
https://stackoverflow.com/questions/45053714
复制相似问题