有特定于域的类:
public class Account : IEntity
{
public bool IsActive { get; set; }
public DateTime ExpirationDate { get; set; }
}
以及从数据源获取帐户的一些谓词:
Expression<Func<Account, bool>> predicate = a => a.IsActive == false && a.ExpirationDate < DateTime.Now;
List<Account> lst = new List<Account>();
lst.AsQueryable().Where(predicate);
如何从谓词中生成not_predicate? not_predicate在哪里:
!(a.IsActive == false && a.ExpirationDate < DateTime.Now)
答案 0 :(得分:2)
这可能需要调整(我不是在PC上) - 但是类似于:
var not = Expression.Lambda<Func<Account,bool>>(
Expression.Not(predicate.Body), predicate.Parameters);