Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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# EF Core:无法翻译LINQ表达式。A”;其中“;在”;选择“; var subProjects=await\u projectRepository.Where(p=>p.Id==Id) .SelectMany(p=>p.SubProjects .选择(x=>new { 子项目=x, PdfCount=x.文件 .WhereIf(query.TaskId!=null,f=>f.ProjTask.Any(t=>t.Id==query.TaskId)) .Count() })) .ToListAsync();_C#_Entity Framework - Fatal编程技术网

C# EF Core:无法翻译LINQ表达式。A”;其中“;在”;选择“; var subProjects=await\u projectRepository.Where(p=>p.Id==Id) .SelectMany(p=>p.SubProjects .选择(x=>new { 子项目=x, PdfCount=x.文件 .WhereIf(query.TaskId!=null,f=>f.ProjTask.Any(t=>t.Id==query.TaskId)) .Count() })) .ToListAsync();

C# EF Core:无法翻译LINQ表达式。A”;其中“;在”;选择“; var subProjects=await\u projectRepository.Where(p=>p.Id==Id) .SelectMany(p=>p.SubProjects .选择(x=>new { 子项目=x, PdfCount=x.文件 .WhereIf(query.TaskId!=null,f=>f.ProjTask.Any(t=>t.Id==query.TaskId)) .Count() })) .ToListAsync();,c#,entity-framework,C#,Entity Framework,无法翻译LINQ表达式“f”。以可以翻译的形式重写查询,或者通过插入对“AsEnumerable”、“asAsAsAsyncEnumerable”、“ToList”或“ToListSync”的调用显式切换到客户端计算。有关更多信息,请参阅。 System.InvalidOperationException:无法翻译LINQ表达式“f”。以可以翻译的形式重写查询,或者通过插入对“AsEnumerable”、“asAsAsAsyncEnumerable”、“ToList”或“ToListSync”的

无法翻译LINQ表达式“f”。以可以翻译的形式重写查询,或者通过插入对“AsEnumerable”、“asAsAsAsyncEnumerable”、“ToList”或“ToListSync”的调用显式切换到客户端计算。有关更多信息,请参阅。 System.InvalidOperationException:无法翻译LINQ表达式“f”。以可以翻译的形式重写查询,或者通过插入对“AsEnumerable”、“asAsAsAsyncEnumerable”、“ToList”或“ToListSync”的调用显式切换到客户端计算。有关更多信息,请参阅

公共类项目
{
//……其他财产
公共虚拟ICollection子项目{get;set;}
}
公共类子项目
{
//……其他财产
公共虚拟ICollection文件{get;set;}
}
公共类文件
{
//……其他财产
公共虚拟ICollection项目任务{get;set;}
}

。如果
?你能在表达式中使用它吗?你可能得把它去掉。您可能能够定义
表达式过滤器=(query.TaskId!=null)?f=>f.ProjTask.Any(t=>t.Id==query.TaskId):f=>true
在查询外部,然后在表达式树内部使用
.Where(filter)
。@JeremyLakeman Yes,
Where如果是问题,我在外部定义了表达式。但是我应该在
Where(filter)
之前添加
AsQueryable()
,否则就无法编译。谢谢你的帮助~