GraphQL 中是否可以发送具有多个值的 Enum

use*_*373 5 c# enums graphql graphql-dotnet

在 C# 中,可以创建带有标志属性的枚举。( https://learn.microsoft.com/en-us/dotnet/api/system.flagsattribute?view=netstandard-2.1 ) 这意味着枚举可以看起来像这样:

[Flags]
enum EnumWithFlags 
{
  None = 0,
  FlagOne = 1,
  FlagTwo = 2,
  FlagThree = 4
}
Run Code Online (Sandbox Code Playgroud)

EnumWithFlags 的值为 5,这意味着它将同时具有 FlagThree 和 FlagOne。

这对于 Enum 输入类型也可能吗?有这方面的例子吗?

Vol*_*tan 2

模式和类型

枚举类型是一种特殊的标量,仅限于一组特定的允许值。

基本上,如果您希望它是一个枚举,则必须将每个标志组合定义为单独的值。更好的解决方案可能是使用向量,您可以在列表中设置多个枚举值:

    type Foo {
         flags: [EnumWithFlags]
    }

    enum EnumWithFlags {
         NONE
         FLAG_ONE
         FLAG_TWO
         FLAG_TREE
    }
Run Code Online (Sandbox Code Playgroud)

更新一下,这里也有回答