Closed ymb27 closed 2 years ago
请换 全局过滤 器。https://github.com/dotnetcore/FreeSql/wiki/%e8%bf%87%e6%bb%a4%e5%99%a8 而不是你现在使用的仓储过滤器。
同问
同问
请换 全局过滤 器。https://github.com/dotnetcore/FreeSql/wiki/%e8%bf%87%e6%bb%a4%e5%99%a8 而不是你现在使用的仓储过滤器。
使用仓储过滤器
services.AddFreeRepository(filter =>
{
filter.Apply<IEntitySoftDelete>("SoftDelete", a => a.IsDeleted == 0);
filter.Apply<IEntityCompany<long>>("TenantQuery", a => a.CompanyId == 1);
}, this.GetType().Assembly);
private readonly IUserRepository _userRepository;
public AuthService(
IUserRepository userRepository
)
{
_userRepository.DataFilter.Disable("TenantQuery");
}
user = await _userRepository.GetAsync(1);
改使用全局过滤器
fsql.GlobalFilter.Apply<IEntitySoftDelete>("SoftDelete", a => a.IsDeleted == 0)
.Apply<IEntityCompany<long>>("TenantQuery", a => a.CompanyId == 1);
不生效
user = await _userRepository.GetAsync(1);
改成以下生效
user = await _userRepository.Select.DisableGlobalFilter("TenantQuery").WhereDynamic(1).ToOneAsync();
很多地方用到仓储的方法,都得修改。请问有没有什么办法像下面配置就可以使用全局过滤器
_userRepository.DataFilter.Disable("TenantQuery");
这样才是正确用法:
using (_userRepository.DataFilter.Disable("TenantQuery"))
{
var user = await _userRepository.GetAsync(1);
}
repo.DataFilter.Disable 可以禁用全局过滤器的,你使用的哪个版本?
使用过没生效
using (_userRepository.DataFilter.Disable("TenantQuery"))
{
var user = await _userRepository.GetAsync(1);
}
freesql 版本1.8.1
v2.3.100
感谢,我试下
下午好,freesql 版本升级到2.3.106了
Repository.DataFilter 无法禁用 GlobalFilter
using (_userRepository.DataFilter.Disable("TenantQuery"))
{
var user = await _userRepository.GetAsync(1);
}
v2.3.100 存在 GlobalFilter 在 Repository 失效的
升级到2.3.106 Repository.DataFilter 无法禁用 GlobalFilter
@ZevFung 这个确实无效,等会修复发布
v3.2.650-preview20220520 版本已发布,10分钟后更新
感谢,测试过,已修复
问题描述及重现步骤:
使用了includemany进行贪婪加载后全局设置的softdelete过滤器不起作用,代码如下。
全局软删除过滤器配置如下。
查询结果如下。
数据库使用sql查询结果如下。
数据库的具体版本
安装的包
.net framework/. net core? 及具体版本