안녕하세요 EF에 문제가 있습니다. 내 응용 프로그램에서 나는 데이터베이스에서 일부 콘텐츠를 채우기 위해 DataGrid
을로드해야합니다.데이터베이스에서 레코드 중복 SaveChanges()
UserControl을 :
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 내가 데이터베이스에 중복 레코드를 가져. 복제 된 레코드 간의 유일한 차이점은 첫 번째 레코드가 외래 키를 잃어버린다는 것입니다.
editableSacoche = SacocheDal.dbContext.Sacoches.Include("Contenus").First(i => i.SacocheID == editableSacoche.SacocheID);
editableSacoche.Contenus = contenus;
SacocheDal.dbContext.SaveChanges();
내가하는 모든 일이 Sacoche
를 얻을 그의 Contenu
마지막 SaveChanges()
를 호출이 추가됩니다 여기에
내가 내 Contenu
내 Sacoche
에 추가 할 수 있습니다.
편집 : 여기
은 결과 난 단지 새로운 아이템을 얻기 위해 시도했지만 실패했습니다. 나는 그들이 동일한 경우에도 모든 레코드를 얻을 수contenuAjoute
에
List<Contenu> contenuAjoute = contenus.Except(editableSacoche.Contenus.ToList()).ToList();
...
'editenSacoche'의'Contenus' 키가'ContenusID'로 설정되어 있는지 확인하십시오. –
귀하의 의견에 대해 자세히 알려주십시오. – 113408
http://msdn.microsoft.com/en-us/magazine/dn166926.aspx –