我有2个模型类。更新多对多关系
public class Candidate
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Skill> Skills { get; set; }
}
public class Skill
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Candidate> Candidates { get; set; }
}
这为我创建了3个表格。
- 考生
- ID名称
- 1汤姆
- 约翰二
- 技能
- ID名称
- 1 C#
- 2 MVC
- 3 SQL
- 4 NHibernate的
- 5的Java
我做了在自动生成的表的关联:
-
个
- CandidateSkills
- CandidateId SkillId
现在我想更新技能candidateId 1即汤姆谁愿意删除他的SkillId:2即MVC并添加新的SkillId:4 & 5即nHibernate & Java分别为。
我得到的集IDS从形式即3,4 和候选ID:1,由于2被用户移除。
我的API是这样的:
public Candidate Add(int candidateId, int[] skillIds)
{
var model = dbContext.candidate.Find(candidateId);
}
如何以有效的方式更新候选纪录,成为最小的数据库调用?
谢谢@GertArnold –
或者使用[存根实体](http://stackoverflow.com/a/16787524/861716)。 –