TerminalCertificationエンティティを更新するリポジトリに更新機能があります。しかし、このエンティティは、他のクラス(GomrokJustification)との関係が多岐にわたります。
私の更新機能はエンティティを正しく更新しますが、関連するエンティティは更新しません。エンティティ・フレームワーク内の関連するデータを更新する
public void UpdateTerminalCertification(TerminalCertification terminalCertification)
{
var lastCertification =
db.terminalCertifications.Include("TimeInfo").Include("GomrokJustifications").Where(item=>item.TerminalCertificationID==terminalCertification.TerminalCertificationID).ToList();
if (lastCertification.Count==0)
throw new TerminalCertificationNotFoundException(terminalCertification);
terminalCertification.TimeInfo = lastCertification[0].TimeInfo;
((IObjectContextAdapter)db).ObjectContext.Detach(lastCertification[0]);
((IObjectContextAdapter)db).ObjectContext.AttachTo("terminalCertifications", terminalCertification);
foreach (var gomrokJustification in terminalCertification.GomrokJustifications)
{
((IObjectContextAdapter)db).ObjectContext.AttachTo("gomrokJustifications", gomrokJustification);
((IObjectContextAdapter)db).ObjectContext.ObjectStateManager.ChangeObjectState(gomrokJustification, EntityState.Modified);
}
((IObjectContextAdapter) db).ObjectContext.ObjectStateManager.ChangeObjectState(terminalCertification,EntityState.Modified);
}
と私のTerminalCetrificationは、いくつかのエンティティによって以前に充填したGomrokJustificationsのリストを持っています 私の更新機能は以下の通りです。私はそれらの最後のエンティティを新しいものに置き換えたい。しかし、これは起こらなかった。 誰にも分かりますか?