在 GraphQL HotChocolate 上过滤 EF Core 导航属性

Ven*_*son 1 c# entity-framework-core graphql hotchocolate

我正在将 HotChocolate (11.2.2) 与 EF Core 一起使用,并且想要过滤子属性。根据 GraphQL 文档,这应该可以通过在导航属性上使用过滤器关键字来实现,但 HotChocolate 失败了。

我的架构:

type A {
    Name: string,
    RefTo: [B]
}
type B {
    TypeName: string,
    Value: int
}
Run Code Online (Sandbox Code Playgroud)

这是由 EF 支持的,我IQueryable<A>向 HotChocolate 提供了一个。

[UsePaging]
[UseProjection]
[UseFiltering]
[UseSorting]
public IQueryable<A> GetAs([Service] Context db) => db.As.AsSingleQuery().AsNoTrackingWithIdentityResolution();
Run Code Online (Sandbox Code Playgroud)

现在我只想包含那些等于的Bs ,如下所示:TypeName"ExampleType"

query {
   As {
      Name,
      RefTo(where: { TypeName: { eq: "ExampleType" } })
      {
          TypeName,
          Value
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

但 HotChcolate 似乎并不明白这一点,并说道:

Unknown argument "where" on field "A.RefTo".validation

是否可以使用 EF Core 模型过滤导航属性?

Pas*_*enn 5

您还必须向 RefTo 添加过滤

[UseFiltering] 
public ICollection<A> RefTo {get; set;}
Run Code Online (Sandbox Code Playgroud)