こんにちは、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
等しい場合でも、すべてのレコードを取得します...