私のSchool EF Model
には、Kids
とTutorials
が多対多の関係にあります。 キッズとチュートリアルの両方に既存のアイテムがあると仮定しましょう。既存の関係を変更するだけです。つまり、子供からいくつかのチュートリアルを追加/削除することです。エンティティフレームワーク多対多リレーションシップを正しく更新する
"Cannot insert duplicate key in object 'dbo.Tutorials'. The duplicate key value is (10)."
私はEFの新しいチュートリアルアイテムを作成しようとしている代わりに、私のための既存の関係を更新して見ることができます:私はこれを行うと
var kid; //the request target to modify relationships
//kid.Tutorials has the old existing relationships to be modified by add/del
var tutorialsToAdd; //the request to add relationships
var tutorialsToDel; //the request to del relationships
using (var conn = new SchoolEFModels(efConnectionStr)) {
conn.Kids.Attach(kid);
kid.Tutorials.ForEach(t => conn.Tutorials.Attach(t));
kid.Tutorials.AddRange(tutorialsToAdd); //simple add extension in batch
kid.Tutorials.RemoveRange(tutorialsToDel); //simple del extension in batch
conn.SaveChanges();
}
は、私が言って例外が発生しました。それは私が望まないものです。あなたは私をEFと誤解しました!
私のコードで何が問題になっていますか?多対多の関係を更新するにはどうすればよいですか?
https://msdn.microsoft.com/en-us/magazine/dn166926.aspx –
@GertArnold、それは私にMVC足場を販売しています。特に多対多の更新処理については言及していませんでした。私のアプリはそれとは異なる構造をしています。だから私はまだ失われている:( – Tom