带日期时间的 PredicateBuilder

PredicateBuilder with DateTime

我们最近刚刚在我们的项目中包含了 PredicateBuilder class 并遇到了一个问题。在下面的代码中,为什么生成的 sql 中不包含 createDateTime 条件?除日期外,其他过滤器均已正确生成。如果重要的话,我们还引用了 LinqKit。

    var predicate = PredicateBuilder.True<Booking>();
    predicate = predicate.And(p => p.propertyId == propertyId).And(p => p.status == (int)status);

    //if (dtFrom != null && dtFrom.HasValue)
    //{
        predicate.And(p => p.createDateTime >= dtFrom.Value);
    //}
    return this.ObjectContext.Bookings.AsExpandable().Where(predicate).OrderBy(p => p.createDateTime).Select(b => b.id).ToList();

您需要将谓词赋值回变量。

代码如下:

        predicate = predicate.And(p => p.createDateTime >= dtFrom.Value);