主キーとして int を持つエンティティがあり、これは store generatedpattern = none に設定されているため、クライアント側に ID を提供します。
このエンティティには、ナビゲーションと外部キー ID との関連付けを介して参照する子エンティティがあります。
新しい親エンティティを作成して子を追加し、親エンティティの主キーを設定して保存すると、保存後に子の外部キーが修正され、データベースに保持されません。
例えば
engine = new Engine();
part = new Part();
engine.Parts.Add(part);
engine.Id = 6;
engineRepository.Save(engine);
保存は単純に
Context.Engines.AddObject(entity);
Context.SaveChanges();
保存後、"part" の外部キーは "EngineId" = 6 になりますが、データベースでは "EngineId" = 0 になります。つまり、保存後に修正が行われたように見えます。
ここで何が欠けていますか?エンジンの store generatedpattern が ID の場合、すべて正常に動作します。