私はEntity Frameworkをあまり使用していないので、私と一緒に裸にしてください。Entity Frameworkを使用して子コレクションに変更を保存する
私は別のEntityCollectionの目的であるEntityCollectionへの変更、 をしたと私はそれらの変更を保存しようとすると、私は次のエラーを取得する:
The EntityCollection has already been initialized. The InitializeRelatedCollection method should only be called to initialize a new EntityCollection during deserialization of an object graph.
任意のアイデア私が欠落しているかもしれないもの?
以下は私が使用したコードです。
public void UpdateCompanyManagement(Company newCompany)
{
Company oldCompany = entities.Companies.Where(c => c.COM_ID == newCompany.COM_ID).SingleOrDefault();
oldCompany.Managements = newCompany.Managements;
try
{
entities.SaveChanges();
}
catch (OptimisticConcurrencyException)
{
entities.Refresh(RefreshMode.ClientWins, newCompany.Managements);
entities.SaveChanges();
}
}
私は、次のコードを使用して、成功した親コレクションを保存することができるよ:
public void UpdateCompanyDetails(Company newCompany)
{
Company oldCompany = entities.Companies.Where(c => c.COM_ID == newCompany.COM_ID).SingleOrDefault();
entities.ObjectStateManager.ChangeObjectState(oldCompany.city, System.Data.EntityState.Modified);
oldCompany = newCompany;
try
{
entities.SaveChanges();
}
catch (OptimisticConcurrencyException)
{
entities.Refresh(RefreshMode.ClientWins, oldCompany);
entities.SaveChanges();
}
}
最初のコードは動作しない理由をすべてのヘルプははるかに高く評価されるだろう。 ありがとうございます。
ありがとう@dmitry。 –
あなたの質問に答えますか? –
実際に@dmitryリソースは非常に有益でしたが、この場合は同じではありません。私は私のために働く解決策を投稿しました。 –