gpt4 book ai didi

c# - 模型关系导致 Swagger/端点出现问题

转载 作者:行者123 更新时间:2023-12-04 07:40:30 27 4
gpt4 key购买 nike

我有两个实体,类和学生。一对多关系,我使用 EF Core:一个教室可以有很多学生,一个学生可以在一个教室里。

public class Classroom
{
public int ClassroomId { get; set; }
public List<Student> Students{ get; set; }
}

public class Student
{
public int StudentId { get; set; }
public string Name { get; set;
public int ClassroomId { get; set; }
public Classroom Classroom { get; set; }
}
为了尽可能简短,我省略了用于表等的 Controller、DataContext、DbSet<>,但我已经创建了所有这些。
现在,如果我运行我的应用程序并且我想发布一个类 通过 Swagger ,它包括模型模式中的学生列表,因此我必须创建学生列表,就好像它是我想在创建教室的同时创建的属性一样。同样,如果我想创建/发布学生,它会在模型​​模式中包含教室。
相反,我希望能够分别创建类和学生。创建学生时,我希望能够仅指定教室 ID,以便将学生连接到现有教室,而不是同时创建它们。
我该怎么做?我确定我误解了一些东西,所以我很感激我能得到的所有帮助。谢谢

最佳答案

How do I go about this?


不要将您的数据库模型暴露给外界。它们是您的数据库模型,而不是您的数据交换对象。除了您的 ORM 之外没有人需要看到它们或应该看到它们,您可以对它们进行注释,以便您的数据库层知道该做什么。
您的 Controller 层应该有一组模型类,用于通过 REST(使用 swagger)与外界对话。您可以按照您认为合适的方式构建它们,您可以对它们进行注释,以便您的 REST 层了解要做什么。
然后,您需要将您从外部世界获得的模型映射到您想对数据库执行的操作。这应该很简单。

关于c# - 模型关系导致 Swagger/端点出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67507251/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com