Entity framework core 向存储库实体添加全局会话筛选器

Entity framework core 向存储库实体添加全局会话筛选器,entity-framework-core,domain-driven-design,abp,irepository,Entity Framework Core,Domain Driven Design,Abp,Irepository,我需要向存储库实体添加一个全局过滤器,即它必须应用于应用程序服务层上访问该实体的任何地方。我的过滤器包含两个条件。虽然添加第一个条件(取决于常数)很容易,并且可以在使用HasQueryFilter的OnModelCreating中应用,但我不知道如何自动应用第二个条件,这取决于当前选择(或默认)的UI语言。在DbContext类中通过构造函数使用依赖项注入。在实现接口的类内设置当前选定的UI语言。在OnModelCreating方法中使用注入的实现,像通常一样使用.HasQueryFilter(

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

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


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

在从ABP寻找合适的东西注射时浪费了一段时间。最后,在方法内部按原样使用了
CultureInfo.CurrentUICulture.Name
。但我认为你的方法会奏效——这也是我最初的猜测。