Как создать выражение Linq To Entities
Привет, я использую Linq To Entities, и я хотел бы преобразовать это
return db.Products
.Where(p => p.idUser.Equals(id) &&
p.Category.Genre.Any(g => g.visible))
в нечто вроде
Func<Genre, bool> expr = g => g.visible
return db.Products
.Where(p => p.idUser.Equals(id) &&
p.Category.Genre.Any(expr))
так что я могу добавить больше сложности с чем-то вроде этого
Func<Genre, bool> expr = g => g.visible
expr += g => g.position < 5
Но у меня всегда есть "внутренняя ошибка 1025.NET". Кто-нибудь может мне помочь? Благодарю.
1 ответ
Решение
Вам нужно использовать Expression
с, а не делегаты. Вы можете использовать PredicateBuilder
класс Джозефа Албахари для динамического построения предиката:
Expression<Func<Genre, bool>> expr = g => g.visible;
expr = expr.And(g => g.position < 5);