【发布时间】:2020-03-09 13:11:30
【问题描述】:
我正在尝试将一些数据保存到我的 MenuItems 表中,但我被错误阻止了
SqlException:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“MenuCategories”中插入标识列的显式值
我只是尝试使用我拥有的类别 ID 设置外键,我不太清楚为什么会出现上述错误。
这是我的MenuItem 模型:
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; }
}
这是我的MenuCategory 模型:
public class MenuCategoryViewModel
{
[Key]
[Column("MenuCategory_Id")]
public int MenuCategoryId { get; set; }
[Required]
public string Name { get; set; }
}
我正在尝试为其分配现有类别的 id,我不希望它创建新类别。
【问题讨论】:
-
提示:上面的错误表明您要插入的 Id 是 identity 列,这意味着您必须让数据库服务器控制它如何填充 @987654325 @ 除非您将
Identity_Insert设置为关闭。我不是 Entity Framework Core 方面的专家,但您是否尝试在未填充MenuItemId的情况下传递对象?为什么你需要自己填写MenuItemId? -
@KristianneNerona 我正在尝试自己填充它,因为我想使用现有类别我不希望它创建一个新类别。
-
能否确认MenuCategoryId是否定义为数据库中的IDENTITY列?
标签: c# sql entity-framework asp.net-core