gpt4 book ai didi

c# - LINQ to Entities 不支持 LINQ 表达式节点类型 'Lambda'

转载 作者:太空狗 更新时间:2023-10-29 18:18:23 26 4
gpt4 key购买 nike

我正在尝试使用 Expression 并传递给查询。但我有错误 - LINQ to Entities 不支持 LINQ 表达式节点类型“Lambda”。我也使用了 linqkit.dll 和 AsExpandable(),但是有同样的错误。

public List<Correct> GetCorrects(Expression<Func<Correct, bool?>> predicate)
{
using (SystemsEntities context = new SystemsEntities())
{
var result = context.Corrects.Where(x => predicate == null);
return result.ToList();
}
}

我收到上述错误。什么失败了?

最佳答案

使用这个:

var result = context.Corrects.Where(predicate);

而不是这个:

var result = context.Corrects.Where(x => predicate == null);

Where期望类型为 Expression<Func<T, bool>> 的参数, 但你正试图通过 Expression<Func<T, Expression<...>>反而。这是有效的编译时构造,但在运行时,LINQ 提供程序在尝试转换 predicate 时失败。到 SQL。

另请注意,您应该更改 Expression<Func<Correct, bool?>>进入Expression<Func<Correct, bool>> .

关于c# - LINQ to Entities 不支持 LINQ 表达式节点类型 'Lambda',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20744337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com