1

我遇到了一个对我来说非常奇怪的问题。我正在使用 EF6 并正在修改数据库中的记录,然后保存它们。但是,在具有外键的变量对象上,即使它存在于数据库中,它也会随机向表中添加一条新记录。

示例: 因此,如果我有一个 CRec 表,该表具有 Rect 表的外键,当我修改 CRec 变量并保存它时,它会在 Rect 表中添加另一个条目。

我会添加代码,但我所做的只是

ctxAcct.Entry(crec).State = EntityState.Modified;

任何想法都会被欣赏!

编辑 工作流程:用户登录 --> 打开他们的 CRec --> 编辑 --> 点击保存。

由于这是 EF codefirst MVC,因此从视图中调用以下方法。oCRec 用外键值填充。所以我会有一个 VendorID 和一个 VendorID_ID。VendorID_ID 本质上是 Vendor 表的外键字段。

当我点击保存更改时,它会随机添加一个重复的 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();
}
4

0 回答 0