为了账号安全,请及时绑定邮箱和手机立即绑定

在 C# 中结合 BinaryExpression 和 Expression

在 C# 中结合 BinaryExpression 和 Expression

C#
慕哥9229398 2021-10-24 19:24:30
我怎样才能结合BinaryExpression和Expression<Func<dynamic / T, bool>>?例如:void AddGlobalFilter<T>(Expression<Func<T, bool>> expr){    var parameter = Expression.Parameter(type, "t");    var member = Expression.Property(filter.Parameter, field);    var constant = Expression.Constant(null);    var body = Expression.Equal(member, constant);    var combine = Expression.AndAlso(body, expr);}我正在尝试为实体框架 (EF) 核心定义全局过滤器。问题是我必须手动组合多个过滤器。ModelBuilder如果模型实现了IDbDeleted接口,则可以添加一个过滤器。另一个可以为特定模型手动添加。基本思想是我有一个所有表达式的列表,然后将它们组合起来:var expression = listExpressions.First();foreach (var second in listExpressions.Skip(1)){    expression = Expression.AndAlso(expression, second);}var lambdaExpression = Expression.Lambda(expression, parameter);modelBuilder.Entity(item.Key).HasQueryFilter(lambdaExpression);当然我得到错误(第一个来自Expression.Equal,第二个来自t => t...):过滤器表达式 't => t => (Not(t. ...
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 362 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信