c# - EF Core SqlException: Cannot insert explicit value for identity column in table 'MenuCategories' when IDENTITY_INSERT is set to OFF
问题描述
I am trying to save some data into my MenuItems table but I'm prevented by the error
SqlException: Cannot insert explicit value for identity column in table 'MenuCategories' when IDENTITY_INSERT is set to OFF
I am just trying to set the foreign key using the category id I have, I am not quite sure why I am getting the above error.
This is my MenuItem
model:
public class MenuItemViewModel
{
[Key]
[Column("MenuItem_Id")]
public int MenuItemId { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Description { get; set; }
[Required]
public decimal Price { get; set; }
[Required]
[Column("MenuCategory_Id")]
public MenuCategoryViewModel MenuCategory { get; set; }
}
This is my MenuCategory
model:
public class MenuCategoryViewModel
{
[Key]
[Column("MenuCategory_Id")]
public int MenuCategoryId { get; set; }
[Required]
public string Name { get; set; }
}
I'm trying to assign it the id of an existing category, I do not want it to create a new category.
解决方案
根据您希望使用现有 Id 不添加新类别的评论,那么您为保存所做的操作有点错误_Context.Add(menuItem);
会导致数据库INSERT
触发 - 这是因为将.Add()
所有实体标记为新实体要保存到上下文中,但您不希望这样-您应该做的是类似于添加menuItem
-查询数据库以获取MenuCategory
要附加到它的内容-然后将其设置在menuItem
然后保存.
推荐阅读
- c# - 特殊符号的Json去实化
- java - java.lang.NoClassDefFoundError: com/atlassian/jwt/writer/JwtWriterFactory
- android - 如何判断 Android IAP/订阅是否已退款?
- oracle11g - Oracle 11g - 使用 JOIN 快速刷新物化视图
- angular - Ionic 4 Console.Log() 未显示在函数中
- webots - 如何在 ROS worskapce 中以简单的 Python 脚本导入 Webots 控制器库
- python - 具有多个输入和输出的变分自动编码器
- c - 编码风格:根据某些标志对函数调用进行编程的最佳方式
- html - Why :last-of-type does not work if there is another element at the end of the parent?
- c++ - 标量`new T`与数组`new T[1]`