表达式树语法

时间:2017-03-11 06:04:27

标签: c# asp.net entity-framework lambda expression

我正在重构我的旧代码并遇到了一些语法问题:

public IQueryable<T> Get_all(Expression<Func<T, bool>> predicate = null, bool enableDetectChanges = true, bool enableTracking = true) {

            ActiveDbContext.Configuration.AutoDetectChangesEnabled = enableDetectChanges;

            //return all if predicate is null
            Expression<Func<T, bool>> whereAll = x => true;
            predicate = predicate ?? whereAll;

            var result = enableTracking ? _dbSet.Where(predicate) : _dbSet.AsNoTracking().Where(predicate);

            return result;
        }

问:语法是否可能类似predicate = predicate ?? Expression<Func<T, bool>> whereAll = x => true;而不是2行?

THX

1 个答案:

答案 0 :(得分:0)

predicate ?? (x => true)

我认为它错了(我在返回类型Func或Expression树之间徘徊),但它有效。 thx to PetSerAl