簡體   English   中英

Http POST 多對多 ef core 5.0

[英]Http POST with many to many ef core 5.0

我是一個應用程序(網絡 API 核心)我有三個表(多對多)。

表名稱:

  • 書(書名,名稱)
  • 類別(CategoryId、CategoryName)
  • BookCategory (BookId, CategoryId)

我正在嘗試為多對多表創建一個 HTTP POST 端點。 我正在獲取 JSON 數據。 (見下文)

[HttpPost()]
public async Task<IActionResult> CreateBook([FromBody] List<Entities.Book> bookCollection)
{
   HERE: I WOULD LIKE TO ADD RECORDS TO THE BOOK TABLE FOR EXAMPLE “MathBook” and “ScienceBook”. 
 Also, would like to add records to BookCategory(linking table)
//Assuming category already exists in the Category table. 
}

JSON 數據:通過 POSTMAN 傳遞

[
  {
    "BookId": "9a6383b7-f581-405f-9cd4-4adf91052ca6",
    "name": "MathBook",
    "category": [
      {
        "CategoryId": "2329E0D5-476F-407A-9458-949D0D08123F"
      },
      {
        "CategoryId": "2325E0D5-476F-407A-9458-949D0D08123F"
      }
    ]
  },
  {
    " BookId": "4a6383b7-f581-405f-9cd4-4adf91052ca6",
    "name": "ScienceBook",
    "category": [
      {
        "CategoryId": "3329E0D5-476F-407A-9458-949D0D08123F"
      },
      {
        "CategoryId": "3329H0D5-476F-407A-9458-949D0D08123F"
      }
    ]
  }
]

我正在嘗試為多對多表創建一個 HTTP POST 端點。 我得到以下格式的 JSON 數據。 我可以知道使用 EFCore 5.0 將數據保存在表中的最佳方法是什么嗎?

我做了谷歌並找到了以下解決方案。 有沒有更好的方法來做到這一點?

//Get bookCategory from the table
var category = context. Category.where(c=>c. CategoryId== categoryId)

//Create Book Object
 var MathBook = new Book()
  {
       Title = "MathBook",
       Genres = category
  };
context.AddRange(MathBook);
context.SaveChanges();

首先,你必須查看這篇關於如何建立多對多關系的文章然后你可以使用ThenInclude來連接表

你也可以查看這篇文章How to handle Many-To-Many in Entity Framework Core

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM