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