0

我有我的實體類(這是我的實體框架代碼優先的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保持不變,而其他屬性(如果已更改)已被修改。

當我創建一個人時,一切都可以正常工作。指定的boss被正確存儲。

什麼會導致此問題?

回答

0

嘗試註釋掉db.Entry(employee).State = State.Modified;

+0

沒有這一行就沒有改變正常的領域,如'Name'要麼,所以只..變得更糟.. –

+0

你禁用更改/實體跟蹤的自動檢測? – Moho

+0

不,這一切都在默認的EF設置上工作。 –