嗨,我对 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
我得到所有的记录,即使它们是相等的......