我要问的问题与:
密切相关Insert operation with many-to-many relationship using EF
这个问题和我的问题之间的最大区别是,我将如何从网络API方面做到这一点。
基本上我想在MVC Web API 2端点上发布一个沿着
行的json字符串{"Name":"Job3","Candidate":[1,2,3]}
到终点,如:
POST: api/Jobs
让它认识到我想创建一个与候选人1,2和3有关联的工作3。
编辑: 到目前为止给出的答案,deffinitly允许我继续,但... ...
如果可能,我想使用使用visual studio时创建的脚手架方法来完成此操作。例如
public Job Post(Job JobFromBody){
....
}
*注意:我实际上并不关心json的样子,如果有更好的方式,请告诉我。
答案 0 :(得分:1)
这样的事情:
public HttpResponseMessage Post(JobRequest request)
{
// ... model validation, other checks
// create job object
var job = new Job { Name = request.Name, Candidates = new Collection<Candidate>() };
// associate existing candidates to the job
foreach(var candidate in request.Candidates) {
var c = new Candidate { Id = candidate.Id};
context.Candidates.Attach(c); // without this, EF will try to create new Candidate
job.Candidates.Add(c); // associate the existing candidate with the job
}
context.Jobs.Add(job); // add the job
context.SaveChanges(); // save
// ... handle errors, return status codes etc.
}