对于我的 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
。
我希望有一种更简单的方法来维持这种关系,并可能使
Book
请求更简单地添加标签
POST
或
Tag
没有任何问题。它们之间的关系保存在Book
表中(这使得它们彼此独立)。
您在这里使用的处理多对多关系的方法非常常见,并且经常用于处理它。