具有多个(OR)和(AND)的PredicateBuilder

时间:2014-09-15 14:29:00

标签: c# linq asp.net-mvc-4 predicatebuilder

我试图创建一个表达式,以便检索Store should be on a list of countries以及their Store.Id = X的对象。

我尝试使用以下表达式执行此操作,但会返回存储在数据库中的所有商店,我不知道我错过了什么。

public Expression<Func<Store, bool>> CreateExpression(List<Country> countries, long storeId)
{
    var predicate = PredicateBuilder.False<Store>();

    predicate = countries.Aggregate(predicate, (current, p) => 
        current.Or(e => e.Country.Id == p.Id));

    predicate = predicate.And(e => e.Id == storeId);

    return predicate;
}

0 个答案:

没有答案