【问题标题】:Define required or not for array fields in the prisma datamodel为 prisma 数据模型中的数组字段定义是否需要
【发布时间】:2019-08-08 12:11:08
【问题描述】:

以下有什么区别。什么时候使用一个而不是另一个?

zones: [Zone]
zones: [Zone!]
zones: [Zone]!
zones: [Zone!]!

【问题讨论】:

    标签: prisma prisma-graphql


    【解决方案1】:

    这可以用这个基于定义的允许值表来总结:

    values         | [Zone] | [Zone!] | [Zone]! | [Zone!]! |
    --------------------------------------------------------
    null           |    ✔   |    ✔    |    X    |     X    |
    []             |    ✔   |    ✔    |    ✔    |     ✔    |
    [null]         |    ✔   |    X    |    ✔    |     X    |
    ["a","b"]      |    ✔   |    ✔    |    ✔    |     ✔    |
    ["a",null,"c"] |    ✔   |    X    |    ✔    |     X    |
    

    大多数时候,您需要使用[Zone!]!,因为它可以确保在您的数组中找不到空值。

    【讨论】:

    • 完美!...答案也井井有条。
    • 如果我想避免 [ ] 怎么办? [ ] 与 [null] 有何不同?谢谢
    • 在 GraphQL shema 中,您无法指定所需的长度,这意味着您无法避免空数组 ([])。
    • [] 和 [null] 的区别在于 [] 是一个空数组,而 [null] 是一个元素为空的数组。这与大多数语言中的差异相同。
    猜你喜欢
    • 2014-12-15
    • 2018-02-04
    • 1970-01-01
    • 2015-09-28
    • 2019-05-30
    • 1970-01-01
    • 2020-09-09
    • 2012-05-30
    • 1970-01-01
    相关资源
    最近更新 更多