如何创建Linq To Entities表达式

时间:2010-03-25 16:47:05

标签: entity-framework linq-to-entities lambda

HI,我正在使用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 个答案:

答案 0 :(得分:3)

您需要使用Expression,而不是代表。您可以使用Joseph Albahari的PredicateBuilder类来动态构建谓词:

Expression<Func<Genre, bool>> expr = g => g.visible;
expr = expr.And(g => g.position < 5);