こんにちは、EF に問題があります。私のアプリケーションでは、データベースからいくつかのコンテンツをロードしてDataGrid.
ユーザーコントロール:
contenus = new List<Contenu>();
contenus = sacoche.Contenus.ToList(); // i get sacoche in the parameter of the contructor
ContenuViewSource.Source = contenus;
ContenuView = (ListCollectionView)ContenuViewSource.View;
ContenuView.Refresh();
すべて正常に動作しますが、他の Contenus を追加しようとすると、データベースに重複したレコードが作成されます。複製されたレコードの唯一の違いは、最初のレコードが外部キーを失っていることです。
ここで、 myContenuに my を追加しSacocheます。
editableSacoche = SacocheDal.dbContext.Sacoches.Include("Contenus").First(i => i.SacocheID == editableSacoche.SacocheID);
editableSacoche.Contenus = contenus;
SacocheDal.dbContext.SaveChanges();
私がすることは、 を取得してSacocheそれに追加しContenu、最後に を呼び出すことだけSaveChanges()です。
結果は次のとおりです。

編集: 新しいアイテムのみを取得しようとしましたが、失敗しました。
List<Contenu> contenuAjoute = contenus.Except(editableSacoche.Contenus.ToList()).ToList();
contenuAjoute等しい場合でも、すべてのレコードを取得します...