插入新父对象时防止EF添加新的子对象而不仅仅是关联?我有以下内容:publicintCreateExercise(ExercisenewExercise){db.Exercises.Add(newExercise);db.SaveChanges();返回新的练习。练习编号;}练习如下:publicclassExercise{publicExercise(){Users=newCollection();}[Key][Required]publicintExerciseId{get;放;}[StringLength(300,ErrorMessage="值不能超过300个字符。")]publicstringTitle{get;放;}公共虚拟ICollection用户{得到;放;当我创建一个新练习时,有时预先存在的用户会附带它,包括Id。即使为这些用户指定了现有的UserId,也会在此处添加新的用户条目。我只想添加关联,而不是新用户——我想EF足够聪明,可以解决这个问题?我究竟做错了什么?我只是想避免必须循环遍历附加到新练习的所有用户,在添加之前清除它们,确保它们存在,添加练习,然后添加每个用户,最后调用SaveChanges。重新连接断开连接的实体时,它们默认处于添加状态。您可以在额外练习后更改状态。以上是C#学习教程:插入新的父对象时,防止EF添加新的子对象而不仅仅是关联?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——publicintCreateExercise(ExercisenewExercise){//将所有附加用户设置为unchanged.db.ChangeTracker.Entries().ToList().ForEach(p=>p.State=EntityState.Unchanged);db.SaveChanges();返回新的练习。练习编号;}本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
