如何更改查询过滤器运行时?



我想更改QueryFilter运行时,所以我调用OnModelCreating函数,但它不起作用。

在 DbContext 类中:

private static ModelBuilder myModelBuilder;
private static ParsysDbContext _myParsysDbContext ;
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Page>().HasQueryFilter(q => q.Languge.Language_Name == CultureInfo.CurrentCulture.Name);
myModelBuilder = modelBuilder;
base.OnModelCreating(modelBuilder);
}
public static void OnModelCreatingCall()
{
_myParsysDbContext.OnModelCreating(myModelBuilder);
}

不确定您的预期结果和当前查询是什么。

如果要查询Page,并且只返回包含带有CultureInfo.CurrentCulture.NameLanguge.Language_NamePage,则可以尝试如下查询:

var result1 = context.Page.Include(p => p.Languge).ToList();

如果要查询Languge并且只返回带有CultureInfo.CurrentCulture.NameLanguge,则需要在类似Languge上设置HasQueryFilter

modelBuilder.Entity<Languge>().HasQueryFilter(q => q.Language_Name == CultureInfo.CurrentCulture.Name);

相关内容