【问题标题】:Entity framework not updating self-referenced key实体框架不更新自引用键
【发布时间】:2013-10-21 12:58:42
【问题描述】:

我的实体类(它是我的 Entity Framework Code First DbContext 的一部分)如下所示:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual Person Boss { get; set; }
    public decimal Piotrus { get; set; }
}

现在我正在尝试像这样更新人老板:

using(var db = new DataContext())
{
    var employee = db.Persons.Single(p => p.Name = "Kowalski");
    employee.Boss = db.Persons.Single(p => p.Name = "Malysz");

    db.Entry(employee).State = State.Modified;
    db.SaveChanges();
}

虽然调试实体似乎没问题。它有正确的老板分配。即使我尝试从当前 DbContext 获取数据,它看起来也不错,但在数据库属性 Boss_Id 中保持不变,而其他属性(如果已更改)已被修改。

当我创建一个人时,一切正常。分配的老板已正确存储。

什么会导致这个问题?

【问题讨论】:

    标签: sql-server asp.net-mvc entity-framework ef-code-first entity-framework-5


    【解决方案1】:

    尝试注释掉db.Entry(employee).State = State.Modified;

    【讨论】:

    • 没有这条线,它不会改变普通字段,比如Name,所以......只会变得更糟......
    • 您是否正在禁用更改/实体跟踪的自动检测?
    • 您应该不需要手动将实体的状态设置为已修改,然后;
    猜你喜欢
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多