Entity framework core 具有自定义联接的全局查询

Entity framework core 具有自定义联接的全局查询,entity-framework-core,Entity Framework Core,我想为一个实体构建一个自定义查询,在这个实体中,我需要使用一个自定义联接来使过滤器正常工作。我不能使用导航属性。EF Core可以做到这一点吗?我必须如何构建全局查询过滤器。我不知道如何指定HasQueryFilter()方法的参数中的联接是生成自动Where子句的谓词表达式。因此,它们不能包含到筛选实体表的显式联接。它们可以通过导航属性引入隐式连接 简而言之,如果不能使用导航属性,则不能使用直接联接 但是您可以使用相关子查询。例如: public class EntityInfo {

我想为一个实体构建一个自定义查询,在这个实体中,我需要使用一个自定义联接来使过滤器正常工作。我不能使用导航属性。EF Core可以做到这一点吗?我必须如何构建全局查询过滤器。我不知道如何指定HasQueryFilter()方法的参数中的联接是生成自动
Where
子句的谓词表达式。因此,它们不能包含到筛选实体表的显式联接。它们可以通过导航属性引入隐式连接

简而言之,如果不能使用导航属性,则不能使用直接联接

但是您可以使用相关子查询。例如:

public class EntityInfo
{
    public int Id { get; set; }
    public string EntityType { get; set; }
    public int EntityId { get; set; }
    public string Info { get; set; }
}

public class Foo
{
    public int Id { get; set; }
    public string Info { get; set; }    
}
然后在模型创建的
中:

modelBuilder.Entity<Foo>().HasQueryFilter(e => 
    this.Set<EntityInfo>().Any(ei => ei.EntityType == "Foo" && ei.EntityId == e.Id));
modelBuilder.Entity().HasQueryFilter(e=>
this.Set().Any(ei=>ei.EntityType==“Foo”&&ei.EntityId==e.Id));
Thx-关键字是“子查询”