我在ef2.0中使用了全局过滤 builder.Entity<T>().HasQueryFilter(e => e.TenantId == _tenantId && !e.IsDeleted);
这样造成一个问题 在关联载入include时关联查询也将应用过滤条件,生成语句如下:
SELECT *
FROM `Message` AS `m`
INNER JOIN (
SELECT *
FROM `User` AS `u`
WHERE (`u`.`IsDeleted` = 0) AND (`u`.`TenantId` = @___tenantId_0)
) AS `t` ON `m`.`SenderId` = `t`.`Id`
WHERE (`m`.`IsRead` = 0) AND (`m`.`ReceiverId` = @___mmsSession_UserId_0)
而我的初衷是关联查询不应该应用过滤条件,因为用户虽然删除了,但是Message显示的时候还是需要知道这个用户的
麻烦各位, 有什么好的处理方法吗?
可以在LINQ查询时使用.IgnoreQueryFilters()
,参考 Disabling Filters
谢谢 这样会全部禁用掉
我是想只禁用include的Filter, 而外部的Filter不禁用