小编Bra*_*Cok的帖子

如何在 Hot Chocolate 中公开不同级别架构的属性

我正在努力将设计粗劣的 REST API 转换为带有 Entity Framework Core 和 Hot Chocolate 的流畅 GraphQL API。

我目前正在通过 公开我的整个数据库UseProjection。我的数据库包含一个表Foo,该表的外键Bar具有 property Baz

目前这被曝光为:

Foo {
  Bar {
    Baz
  }
}
Run Code Online (Sandbox Code Playgroud)

就我而言,FooBar1:1 的关系。我想隐藏BarAPI,并公开以下内容:

Foo {
  Baz
}
Run Code Online (Sandbox Code Playgroud)

我在 中添加了以下内容FooType.cs

descriptor
    .Field("Baz")
    .Resolve(ctx => ctx.Parent<Foo>().Bar?.Baz);
Run Code Online (Sandbox Code Playgroud)

Baz 如果我运行在两个级别进行访问的查询,则 GQLBaz在两个级别都会正确返回。但是,如果我省略 3 级请求,则 SQL 调用永远不会Baz从数据库中提取,因此 2 级请求返回null.

热巧克力文档说你可以通过添加以下内容来解决这个问题:

descriptor
    .Field(Foo => Foo.Bar)
    .IsProjected(true);
Run Code Online (Sandbox Code Playgroud)

但是,当我使用此代码运行查询时,我收到错误A composite type …

.net-core graphql hotchocolate

12
推荐指数
1
解决办法
2304
查看次数

标签 统计

.net-core ×1

graphql ×1

hotchocolate ×1