2010-08-19 81 views
2

這是實體框架4.EF4節省對象增加了一個新的子

CurrentProperty.FMVHistories.Add(FMVPresenter.GetFMVHistoryObject()); 
DataLayer.AccrualTrackingEntities repository = new AccrualTrackingEntities(); 
repository.Properties.AddObject(CurrentProperty); 
repository.SaveChanges(); 

之前,我打電話調用SaveChanges,CurrentProperty在其FMVHistories收集1個對象,因爲它應該。在保存之後,它有兩個 - 其中第二個似乎是第一個的副本,兩個都正確設置了外鍵。

此處涉及的所有對象都是新的。沒有以任何方式加載。

FMVHistory具有3個字段的組合鍵,其中一個是它所連接屬性的外鍵。

有誰知道爲什麼這第二個FMVHistory對象被添加?

回答

1

看起來這與EF如何處理日期有關。 FMVHistory表的設計者使用了一個複合鍵,其中一部分是日期字段。由於某些原因,當EF插入對象時,它會從插入的日期截斷秒數等,這打破了很多奇怪的東西。我最終殺死了複合鑰匙並加入了身份,現在一切都很好。