尝试将新项目添加到Kendo UI网格时,特别是在 SaveChanges 事件上,我收到以下错误:
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_dbo.Items_dbo.Categories_CategoryId". The conflict occurred in database "appdb", table "dbo.Categories", column 'CategoryId'
这是我用来添加新项目的代码:
public int CreateItem(ItemViewModel viewModel)
{
var item = new Item();
viewModel.CopyToItem(item);
db.Items.Add(item);
db.SaveChanges();
return item.ItemId;
}
项目 viewmodel:
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ItemId { get; set; }
public string Description { get; set; }
public int CategoryId { get; set; }
public virtual Category Category { get; set; }
public void CopyToItem(Item item)
{
item.ItemId = this.ItemId;
item.Description = this.Description;
item.CategoryId = this.CategoryId;
}
类别模型:
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public virtual ICollection<Item> Items { get; set; }
我不确定问题是什么。任何帮助将不胜感激。
答案 0 :(得分:0)
您必须将CategoryId设置为有效值。是ViewModel中的CategoryId吗?
答案 1 :(得分:0)
原来,View中的Kendo网格代码存在问题。我将类别定位为列而不是 CategoryId 。我的坏,应该更加敏锐。感谢您的建议并查看我的问题。