当我们做类似多租户的管理系统时,我们的增删改操作都会涉及到租户Id的关联,如果我们想绕过租户的管理修改全局数据时,就需要临时的禁用过滤器。
await _weChatMpRepository.Select.DisableGlobalFilter(nameof(entity.TenantId)).Where(t => t.Account == Account).ToOneAsync();
DisableGlobalFilter(params string[] name)只支持查询的时候禁用,这时我们可以进行转换:
await _weChatUserInfoRepository.Select.DisableGlobalFilter(nameof(entity.TenantId)).ToUpdate().SetSource(entity).ExecuteAffrowsAsync()
将查询语句装换为修改语句,DisableGlobalFilter(params string[] name)不传值的话禁用全局,写入的值为禁用的值。SetSource(entity)的参数为要修改的实体。
具体可以参考官方文档ISelect.ToUpdate 高级更新