将全局会话过滤器添加到存储库实体

Adding global session filter to repository entity

我需要向存储库实体添加一个全局过滤器,即必须在应用程序服务层访问该实体的任何地方应用它。我的过滤器包含两个条件。虽然添加取决于常量的第一个条件很容易,并且可以使用 HasQueryFilter 在 OnModelCreating 中应用,但我不知道如何自动应用第二个条件,这取决于当前选择的(或默认的)UI 语言。

通过 DbContext 中的构造函数使用依赖注入 class。在实现接口的 class 中设置当前选择的 UI 语言。使用 OnModelCreating 方法中的注入实现,像往常一样使用 .HasQueryFilter() 方法全局应用过滤器。

如果您使用的是 .NET Core API 之类的东西,您可以构建一个中间件来确定当前传入请求的语言。我想这同样适用于 MVC。