我想更改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.Name
Languge.Language_Name
的Page
,则可以尝试如下查询:
var result1 = context.Page.Include(p => p.Languge).ToList();
如果要查询Languge
并且只返回带有CultureInfo.CurrentCulture.Name
的Languge
,则需要在类似Languge
上设置HasQueryFilter
modelBuilder.Entity<Languge>().HasQueryFilter(q => q.Language_Name == CultureInfo.CurrentCulture.Name);