问题描述
我在 TeamMember 和 Skill 之间有一个 JoinEntity,称为 UserSkill。 TeamMember 对象具有一组 UserSkill 对象。当 TeamMember 被编辑时,可以选择添加或删除技能,保存时我会尝试清除所有现有技能并添加在 Post Request 中提交的技能。但是,当我再次尝试添加技能集合时,清除它后,我收到一条错误消息,提示...
无法跟踪实体类型“UserSkill”的实例,因为 另一个具有键值 '{TechnicalSkillId: 5,TeamMemberId: 737}' 已被跟踪。当附加现有 实体,确保只有一个具有给定键值的实体实例 附上。
团队成员类
public class TeamMember{
...
public List<UserSkill> Skills { get; set; }
}
用户技能类
public class UserSkill {
public int TechnicalSkillId { get; set; }
public int TeamMemberId { get; set; }
[ForeignKey("TechnicalSkillId")]
public Skill Skill { get; set; }
[ForeignKey("TeamMemberId")]
public User TeamMember { get; set; }
}
...
db.UserSkill.RemoveRange(teamMember.Skills);
db.TeamMembers.Update(teamMember);
db.SaveChanges();
foreach(var skill in db.Skills.Where(s => skills.Contains(s.Id.ToString())).ToList())
{
db.UserSkill.Add(new UserSkill() { TechnicalSkillId = skill.Id,TeamMemberId = teamMember.Id });
}
...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)