相关疑难解决方法(0)

忽略连接实体的全局查询过滤器

全局查询过滤器在实现租户和软删除功能时非常方便。

但我的问题是,例如,当我编写带有联接的查询时

dbContext
    .entity1
    .Include("entity2.entity3.entity4")
    .Where(something)
    .select(something)
    .toList();
Run Code Online (Sandbox Code Playgroud)

这些实体中的每一个都有全局过滤器,然后在生成的 SQL 中,我为每个 JOIN 获取一个完整的子查询,其中它选择该实体的所有字段并检查全局过滤器。

但我不想要那样。我希望全局过滤器仅适用于查询的根实体(entity1),并且所有其他实体正常加入。

顺便说一句,实体的关系是:

  • 1 个实体4 -> N 个实体3
  • 1 个实体3 -> N 个实体2
  • 1 个实体2 -> N 个实体1

在我的例子中,每个实体都会获得其“租户”字段集,并且当软删除实体时,该软删除会级联到其所有子子实体。因此,检查每个连接的这些字段完全是浪费时间。

c# linq entity-framework-core asp.net-core

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

asp.net-core ×1

c# ×1

entity-framework-core ×1

linq ×1