江湖救急,如果实现增,删,改,查的过滤器 返回

SqlSugar
4 279
该叫什么 PA 发布于1个月前
悬赏:5 飞吻
            SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
            {
                //主库连接字符串
                ConnectionString = globalConfig.DbConnection.ConnectionString,
                //数据库类型
                DbType = (DbType)Enum.Parse(typeof(DbType), globalConfig.DbConnection.DbType),
                //自动释放和关闭数据库连接,如果有事务事务结束时关闭,否则每次操作后关闭
                IsAutoCloseConnection = true,
                //从库配置
                SlaveConnectionConfigs = globalConfig.DbConnection.SlaveConnectionConfigs,
            });
            // 数据插入和更新的aop
            db.Aop.DataExecuting = (oldValue, entityInfo) =>
            {
                if (entityInfo.PropertyName == "TenantId")
                {
                    //表中只要带了TenantId,所有的删除,修改,更新sql语句都要加上  TenantId=租户id的限制
                }
            };

各位,请问怎么实现,表中只要带了TenantId,所有的删除,修改,更新sql语句都要加上  TenantId=租户id的限制

热忱回答4

  • fate sta fate sta VIP0
    1个月前
    0 回复
  • fate sta fate sta VIP0
    1个月前

    删除中也支持使用 

     
    //配置表过滤器
    db.QueryFilter.Add(new TableFilterItem<Order>(it => it.Name.Contains("a")));
     
    //查询有效 
    db.Queryable<Order>().ToList();
    //SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order]  WHERE  ([Name] like '%'+@MethodConst0+'%') 
     
    //删除也有效
    db.Deleteable<Order>().EnableQueryFilter().Where(it=>it.Id==1).ExecuteCommand();
    //DELETE FROM [Order] WHERE  ([Name] like '%'+@MethodConst1000+'%')  AND ( [Id] = @Id0 )


    0 回复
  • fate sta fate sta VIP0
    1个月前

    更新中使用过滤器


    var x = Db.Storageable(list).ToStorage() // 会通过查询去验证是否分组到更新,查询会走过滤器
    x.AsUpdateable.ExecuteCommand();//更新的是过滤器分组后的数据


    0 回复
  • fate sta fate sta VIP0
    1个月前

    插入就不需要过滤器了

    0 回复