我正在重构我的旧代码并遇到了一些语法问题:
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
答案 0 :(得分:0)
predicate ?? (x => true)
我认为它错了(我在返回类型Func或Expression树之间徘徊),但它有效。 thx to PetSerAl