嗨,我对 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 时,我在数据库中得到了重复的记录。重复记录之间的唯一区别是第一个记录丢失了他的外键。
在这里,我将我的添加Contenu到我的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我得到所有的记录,即使它们是相等的......