Web API (ASP.NET) 中多对多关系的最佳实践是什么

问题描述 投票:0回答:1

对于我的 ASP.NET Web API,我有类似于下面的多对多关系:

public class Book
{
    public int Id { get; set; }
    public string Title { get; set; }
    public Author Author { get; set; }
    public ICollection<BookTag> BookTags { get; set; }

}  

public class BookTag
{
    public int BookId { get; set; }
    public int TagId { get; set; }
    public Tag Tag { get; set; }
    public int BookId { get; set; }
    public Book Book { get; set; }
}


public class Tag
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<BookTag> BookTags { get; set; }
}  

现在我为所有 3 个创建了 DTO 和控制器,但这意味着:

  • 创建图书时无法创建标签。我必须首先创建这本书,然后通过传递 TagId 和 BookId 向 BookTags 发出 POST 请求。
  • 我有一个用于书籍的 Post Dto,但不知道该放什么。我可以通过书中的回复获取书标签。

现在必须创建 3 个控制器,这与存储库、DTO 等一起很痛苦。(灵活但需要维护更多东西)
  • 这样是最佳做法吗?我不介意这种方法,但想知道是否有更简单的方法将书籍与标签关联起来。

我希望有一种更简单的方法来维护这种关系,并可能使 POST 请求更简单地添加标签

c# asp.net .net api dto
1个回答
0
投票
Tag

Book
没有任何问题。它们之间的关系保存在
BookTag
表中(这使得它们彼此独立)。 您在这里使用的处理多对多关系的方法非常常见,并且经常用于处理它。
    

© www.soinside.com 2019 - 2024. All rights reserved.