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()方法。 –