这是实体框架4.
CurrentProperty.FMVHistories.Add(FMVPresenter.GetFMVHistoryObject());
DataLayer.AccrualTrackingEntities repository = new AccrualTrackingEntities();
repository.Properties.AddObject(CurrentProperty);
repository.SaveChanges();
在我调用SaveChanges之前,CurrentProperty在其FMVHistories集合中有1个对象,应该如此。保存之后,它有两个 - 第二个似乎是第一个的副本,两个都正确设置了外键。
此处涉及的所有对象都是新的。没有以任何方式加载。
FMVHistory有一个3个字段的复合键,其中一个是它附加的属性的外键。
有谁知道为什么要添加第二个FMVHistory对象?
答案 0 :(得分:1)
看起来这与EF处理日期的方式有关。 FMVHistory表的设计者使用复合键创建了它,其中一部分是日期字段。出于某种原因,当EF放入对象时,它会从插入的日期截断秒数等,从而打破了许多奇怪的东西。我最终杀死了复合键并输入了一个标识,现在一切都很棒。