Tag: query cache

按键表达存储静态filter

我有一个函数生成一个表达式来过滤一个表的主键,当它在Object[]传递时,这与Find函数非常相似,只是它没有实现,所以你可以在之后传递一个IQueryable public static Expression<Func> FilterByPrimaryKeyPredicate(this DbContext dbContext, object[] id) { var keyProperties = dbContext.GetPrimaryKeyProperties(); var parameter = Expression.Parameter(typeof(T), “e”); var body = keyProperties // e => e.{propertyName} == new {id = id[i]}.id .Select((p, i) => Expression.Equal( Expression.Property(parameter, p.Name), Expression.Convert( Expression.PropertyOrField(Expression.Constant(new { id = id[i] }), “id”), p.ClrType))) .Aggregate(Expression.AndAlso); return Expression.Lambda<Func>(body, parameter); } 这首先获取表的主键,它创建二进制表达式foreach属性,Id以匿名类型包装以利用查询缓存。 这工作正常。 但是,我想更进一步。 […]