我开始使用LinqKit的PredicateBuilder来创建带有 OR 条件的谓词,这在 Linq 表达式中是不可能的。
我面临的问题是,如果我从PredicateBuilder.True<MyEntity>()
它开始返回所有行,如果我从PredicateBuilder.False<MyEntity>()
它开始返回非行,除了我使用的表达式!看下面的代码:
var pre = PredicateBuilder.True<MyEntity>();
pre.And(m => m.IsActive == true);
using (var db = new TestEntities())
{
var list = db.MyEntity.AsExpandable().Where(pre).ToList();
dataGridView1.DataSource = list;
}
它应该返回具有 IsActive == true 的行,但它会返回所有行!
我已经尝试了PredicateBuilder.True
|的所有可能组合。PredicateBuilder.False
与And
| Or
方法,没有一个有效!