在EF Core 2.0版本中出现了全局过滤新特性即HasQueryFilter,它出现的意义在哪里?能够解决什么问题呢?

通过HasQueryFilter方法来创建过滤器能够允许我们对访问特定数据库表的所有查询额外添加一模一样的过滤器。

它主要用于多租户和 软删除(soft-delete)场景,即用户并不想返回那些被标记为已删除但是尚未从数据库中做物理删除的数据行

builder.Entity<T>().HasQueryFilter(e => e.TenantId == _tenantId && !e.IsDeleted);

参考这篇

04-24 15:29