Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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# 任何包装都可以。方法无法转换为存储表达式_C#_.net_Linq_Entity Framework_Iqueryable - Fatal编程技术网

C# 任何包装都可以。方法无法转换为存储表达式

C# 任何包装都可以。方法无法转换为存储表达式,c#,.net,linq,entity-framework,iqueryable,C#,.net,Linq,Entity Framework,Iqueryable,我有以下代码: public static bool ContainEx<T>(this IQueryable<T> query, System.Linq.Expressions.Expression<System.Func<T, bool>> expression) { return query.Any(expression); } 我收到以下错误消息: System.NotSupportedException:LINQ to实体无法识

我有以下代码:

public static bool ContainEx<T>(this IQueryable<T> query, System.Linq.Expressions.Expression<System.Func<T, bool>> expression)
{
    return query.Any(expression);
}
我收到以下错误消息:

System.NotSupportedException:LINQ to实体无法识别 方法布尔 ContainEx[Bonus](System.Linq.IQueryable`1[SDataEntities.Bonus], System.Linq.Expressions.Expression`1[System.Func`2[sdataenties.Bonus,System.Boolean]] 方法,而此方法无法转换为存储表达式

如果我使用
任何

return bonusesWhereSearch.WhereEx(x => userBonusesWhereSearch.Any(y => y.Bonus_Id == x.Id));

这确实有效。

这里的问题是,实体框架不执行ContainEx,而是尝试将此方法转换为SQL。由于这是自定义方法,所以转换失败。如果您直接使用
Any
,它将正确地转换为SQL等价物。

如何更改包装器?我需要用户包装器。请使用有效的代码
return bonusesWhereSearch.WhereEx(x => userBonusesWhereSearch.Any(y => y.Bonus_Id == x.Id));