次のようなエンティティ クラス (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 は変更されず、他のプロパティ (変更された場合) は変更されています。
また、人を作成しているときはすべて正常に機能します。割り当てられたボスは正しく保存されます。
この問題の原因は何ですか?