私の質問はこれに直接関係しています。
受け入れられた答えは「あなたはまた関係の状態を変えなければならない」と言っています。
モデルファーストアプローチを使用していますが、エンティティに外部キーがありません。ナビゲーションプロパティしかありません。
を介してエンティティの状態を変更することはできますが、リレーション自体DbEntityEntry
の状態を変更する方法がわかりません。どうすればアクセスできますか?
私のコードの例:
Building building = new Building() { Id = 1, Name = "modified" }; //Buiding 1 exists in DB
building.Adress = new Adress() { Id = 1, Road = "Sesame street" }; //Address 1 exists in DB
building.Adress.State = new State() { Id = 1 }; //State with Id 1 exists in DB
dbContext.Entry<Building>(building).State = EntityState.Modified;
dbContext.Entry<Adress>(building.Adress).State = EntityState.Modified;
//The state itself is not modified, but the relation between adress and state may do.
dbContext.Entry<State>(building.Adress.State).State = EntityState.Unchanged;
dbContext.SaveChanges();
Adress
このコードはエラーなしで渡されますが、との間の関係State
は更新されません。建物Name
とStreet
プロパティの。