I'm trying use Expression and pass to query. But I have error - The LINQ expression node type 'Lambda' is not supported in LINQ to Entities. I'm also used linqkit.dll with AsExpandable(), but but have the same error.
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();
}
}
I get the error stated above. What is failing?
Use this:
var result = context.Corrects.Where(predicate);
instead of this:
var result = context.Corrects.Where(x => predicate == null);
Where
expects argument of type Expression<Func<T, bool>>
, but you're trying to pass Expression<Func<T, Expression<...>>
instead. This is valid compile-time construct, but at run-time LINQ provider fails, when it tries to translate predicate
to SQL.
Also note, that you should change Expression<Func<Correct, bool?>>
into Expression<Func<Correct, bool>>
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With