0

我正在开发基于 3 个字段的小型过滤器。我还在我的 MVC 3 项目中使用 MySQL 连接器。

我找到了一个漂亮的 PredicateBuilder http://www.albahari.com/nutshell/predicatebuilder.aspx。但它似乎不适用于 MySQL

 var predicate = PredicateBuilder.False<Order>();

  if(OrderID == 0)
      predicate = predicate.And(x => x.OrderID == 9); //an example, that order exist in the DB

  var result = (from x in db.Order select x).AsExpandable()
               .Where(predicate).ToList();

result包含 0 个元素。为什么 ?

4

1 回答 1

1

因为你从 false 开始并且使用 AND,所以你总是会得到 false。以 True 开头:

var predicate = PredicateBuilder.True<Order>();
于 2012-05-08T19:54:02.540 回答