zra*_*zdn 8 c# linq entity-framework
我正在尝试使用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();
}
}
Run Code Online (Sandbox Code Playgroud)
我收到上述错误.什么失败了?
Den*_*nis 14
用这个:
var result = context.Corrects.Where(predicate);
Run Code Online (Sandbox Code Playgroud)
而不是这个:
var result = context.Corrects.Where(x => predicate == null);
Run Code Online (Sandbox Code Playgroud)
Where期望类型的参数Expression<Func<T, bool>>,但你试图通过Expression<Func<T, Expression<...>>.这是有效的编译时构造,但在运行时LINQ提供程序失败,当它尝试转换predicate为SQL时.
还要注意,你应该改变Expression<Func<Correct, bool?>>成Expression<Func<Correct, bool>>.
| 归档时间: |
|
| 查看次数: |
2550 次 |
| 最近记录: |