c# - 使用 C# 进行热巧克力验证

标签 c# validation .net-core hotchocolate

所以我最近一直在玩 Hotchocolate,我做了一个类(class),它给了我一份学生名单,但我想为它提供一些验证功能。我真的没有从 hotchocolate 官方网站上找到任何对我有帮助的东西。
学生.cs

public class Student
{
    [GraphQLNonNullType]
    public string Name{ get; set; }
    [GraphQLNonNullType]
    public string LastName{ get; set; }
    [GraphQLNonNullType]
    public string Picture { get; set; }
}
这是我的查询,它目前从列表中返回所有学生。
学生查询.cs
public class StudentQuery
{
    [UseFiltering]
    [UseSorting]
    public List<Student> GetStudents()
    {
        return MongoDBHelper.LoadRecords<Student>(EMongoCollection.Students);
    }

}
现在我的问题是,我怎样才能为学生制定一个 ValidationRule,例如说一个学生的名字必须至少有 3 个字符?
有人可以为我提供一些例子吗?
提前致谢。

最佳答案

HotChocolate 本身没有集成此类输入验证。
该框架仅进行 GraphQL 验证。所以检查无效的 GraphQL 查询。 (例如错误类型)
如果您想使用验证,有几个社区库可供选择:

  • AppAny.HotChocolate.FluentValidation - 输入字段 HotChocolate + FluentValidation 集成
  • DataAnnotatedModelValidations - 用于 HotChocolate 的数据注释模型验证中间件
  • FairyBread - HotChocolate 的输入验证 (FluentValidation)
  • FluentChoco - HotChocolate 的 FluentValidation 中间件
  • Graph.ArgumentValidator - 将输入参数验证添加到 HotChocolate (DataAnnotations)

  • 此处列出了社区图书馆:
    https://github.com/ChilliCream/hotchocolate/blob/main/COMMUNITY.md

    关于c# - 使用 C# 进行热巧克力验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64495698/

    相关文章:

    c# - 如何编写异步 LINQ 查询?

    validation - Knockout.Validation 未显示初始渲染后加载的属性的错误消息

    PHP首先将数据发送到数据库然后验证

    console-application - 您如何在 .net 核心控制台应用程序中存储用户应用程序数据

    c# - 如何允许非授权用户访问 get 方法

    c# - Firefox WebDriver (Selenium) 和安全警告弹出窗口

    c# - 日志不会保存到日志表中

    c# - 使用 OnAsyncPostBackError 比 Page_Error 有什么优势

    javascript - 插件 Jquery Validation 的错误信息没有正确显示

    c# - 从不同项目的 appsettings.json 中读取多个连接字符串