我有我的实体类(它是我的实体框架代码优先 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 中保持不变,而其他属性(如果已更改)已被修改。
当我创建一个人时,一切正常。分配的老板正确存储。
什么会导致这个问题?