2010-08-19 5 views
2

Ce cadre est l'entité 4.EF4 Enregistrement d'un objet ajoute un nouvel enfant

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

Juste avant que j'appelle SaveChanges, CurrentProperty a 1 objet dans sa collection FMVHistories, comme il se doit. Juste après l'enregistrement, il en a deux - le second semble être une copie du premier, dont les deux ont leurs clés étrangères correctement.

Tous les objets impliqués ici sont nouveaux. Aucun n'a été chargé de quelque façon que ce soit. FMVHistory possède une clé composée de 3 champs, dont l'un est la clé étrangère de la propriété à laquelle elle est attachée.

Est-ce que quelqu'un sait pourquoi ce second objet FMVHistory est ajouté?

Répondre

1

Il semble que cela soit lié à la manière dont EF gérait les dates. Le concepteur de la table FMVHistory l'a fait avec une clé composite, dont une partie était un champ de date. Pour une raison quelconque, quand EF a mis l'objet, il a tronqué les secondes et ainsi de la date à laquelle il a inséré, ce qui a brisé beaucoup de choses étranges. J'ai fini par tuer la clé composite et mettre une identité, et tout va bien maintenant.

Questions connexes