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

问题描述 投票: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 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 和控制器,但这意味着:

  • 创建

    Tag
    时无法创建
    Book
    。我必须创建
    Book
    first,然后通过传递
    POST
    BookTags
    TagId
    发出请求。
    我有一个 

    BookId

    的 POST Dto,但我不确定要放什么。我可以通过

    Book
    中的回复获得
    BookTags
    
    

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

我希望有一种更简单的方法来维持这种关系,并可能使

Book

请求更简单地添加标签

    

c# asp.net-web-api dto
1个回答
1
投票
POST

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

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