我遇到的问题对我来说非常奇怪。我正在使用EF6并修改数据库中的记录,然后保存它们。但是,对于具有外键的变量对象,即使它存在于数据库中,它也会随机向表中添加新记录。
示例: 因此,如果我有一个CRec表,其具有Rect表的foriegn键,当我修改CRec变量并保存它时,它会向Rect表添加另一个条目。
我会添加代码,但我所做的只是
ctxAcct.Entry(crec).State = EntityState.Modified;
任何想法都会被贬低!
修改 工作流程:用户登录 - >打开他们的CRec - >编辑 - >点击保存。
这是EF codefirst MVC,从视图中调用以下方法。 oCRec填充了外键值。所以我将有一个VendorID和一个VendorID_ID。 VendorID_ID本质上是Vendor表的foreignkey字段。
当我点击保存更改时,当我甚至没有触及该字段时,它会随机添加重复的VendorID_ID。
Public void UpdateCRec(CRec oCRec)
{
ctxAcct.Entry(oCRec).State = EntityState.Deleted;
ctxAcct.SaveChanges();
//here I am making some changes and doing some calculations with other fields in the database.
//Now, after changing field values in CRec I move to the save changes method.
ctxAcct.Entry(oCRec).State = EntityState.Modified;
ctxAcct.SaveChanges();
}