0
我繼承了一些數據庫表和Entity Framework,我有如下表:實體框架如何更新子表
Table Person
Id (Primary Key)
Sex
CarId (Foreign Key)
Table Car
Id (Primary Key)
Color
ManufacturerId (Foreign Key)
Table Manufacturer
Id (Primary Key)
Name
我使用實體框架的工作將數據拉入波蘇斯(沒有問題)。現在,我想改變一個人的汽車並保存到數據庫。我有一段時間這樣做。 我:
Car car= new Car { Color = "gray", Manufacturer = manufacturer};
_dbContext.Cars.Add(car);
_dbContext.SaveChanges();
person.Car = car;
_dbContext.Entry(person).State = EntityState.Modified;
_dbContext.SaveChanges();
沒有異常拋出,新的汽車出現在數據庫中,但人行不更改爲指向新車。有人能告訴我發生了什麼以及我應該如何更新?我是Entity Framework的新手。
順便說一句,我試過其他組合,如試圖
person.CarId = car.Id.
這就導致了一個例外:
參照完整性約束衝突發生了:該屬性定義參考 值約束在關係中的主體和從屬對象之間不是一致的 。
我似乎無法找到一個簡單的例子來清除事情。
非常感謝Peter。你最後兩行_dbContext.DetextChanges()和_dbContext.SaveChanges()爲我解決了它。我沒有意識到在代碼中有一行:_dbContext.Configuration.AutoDetectChangesEnabled = false,我想解釋爲什麼DetectChanges有幫助。標記爲答案。 – Dave
您使用的是哪個版本的Entity Framework?我的dbContext沒有DetectChanges()方法。 –