2011-01-16 12 views
2
ドメイン固有のクラスがあり

式の述語を式の述語から取得するには?

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生成することができますか?これは、(私はPCではないよ)侮辱の調整が必要になる場合があります

!(a.IsActive == false && a.ExpirationDate < DateTime.Now) 

答えて

2

- 何かのように:どこnot_predicateです

var not = Expression.Lambda<Func<Account,bool>>(
    Expression.Not(predicate.Body), predicate.Parameters);