【发布时间】:2021-03-02 23:11:10
【问题描述】:
我正在使用 .net5 和 EntityFrameworkCore 5。
问题和类别之间存在多对多关系。
我正在使用第一代代码。
public class Question
{
public int Id { get; set; }
public string Title { get; set; }
public ICollection<Category> Categories { get; set; }
}
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Question> Questions { get; set; }
}
我想知道如何添加带有类别的问题。
我试过这个:
[HttpPost]
public async Task<ActionResult<Question>> PostQuestion(Question question)
{
question.Categories.Add(new Category() { Id = 1 });
_context.Questions.Add(question);
await _context.SaveChangesAsync();
return CreatedAtAction("GetQuestion", new { id = question.Id }, question);
}
我的数据库中有一个 ID 为 1 的类别。
但是我得到了这个异常
SqlException: Cannot insert explicit value for identity column in table 'Categories' when IDENTITY_INSERT is set to OFF.
进行多对多实体关系插入的正确方法是什么?
【问题讨论】:
-
此错误表明您正在为身份朋友指定一个 id - 尝试消除那里的 id =1 并查看它是如何工作的。
-
@KeithNicholas 但是如果一个问题可以有多个类别并且如果我不想重复这些类别,我需要有一个多对多的关系。我错了?
-
@ChrisB.Behrens 但是如何将问题链接到某个类别?
-
您将捕获生成的 Id 作为 save 命令的结果。试一试,如果这不起作用,请更新问题。
标签: c# .net entity-framework entity-framework-core