保存时添加了EF 6 Ghost /随机记录

时间:2015-07-30 14:22:01

标签: c# database entity-framework duplicates ghost

我遇到的问题对我来说非常奇怪。我正在使用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();
}

0 个答案:

没有答案