首页 新闻 会员 周边 捐助

Entity Framework Core 2.0 Include SoftDeleted

0
悬赏园豆:50 [已解决问题] 解决于 2017-12-13 14:09

我在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显示的时候还是需要知道这个用户的

麻烦各位, 有什么好的处理方法吗?

阳子的主页 阳子 | 初学一级 | 园豆:86
提问于:2017-12-12 12:37
< >
分享
最佳答案
0

可以在LINQ查询时使用.IgnoreQueryFilters(),参考 Disabling Filters

收获园豆:50
dudu | 高人七级 |园豆:30925 | 2017-12-12 12:53

谢谢 这样会全部禁用掉

我是想只禁用include的Filter, 而外部的Filter不禁用

阳子 | 园豆:86 (初学一级) | 2017-12-12 14:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册