繁体   English   中英

如何在EF 6中以多对多关系插入模型

[英]How to insert a model in ef 6 with a many to many relationship

我问的问题与以下内容密切相关:

使用EF与多对多关系进行插入操作

这个问题和我的问题之间最大的区别是,从Web api的角度来看,我将如何做到这一点。

从本质上讲,我想按照以下方式向MVC Web API 2端点发布json字符串:

{"Name":"Job3","Candidate":[1,2,3]}

到这样的终点:

POST: api/Jobs

并确认我要创建作业3,该作业与候选人1、2和3具有关联。

编辑:到目前为止给出的答案,绝对可以让我继续,但是...

如果可能的话,我想使用在使用Visual Studio时创建的脚手架方法。 例如

public Job Post(Job JobFromBody){
....
}

*注意:我实际上并不关心json的外观,如果还有更好的方法,请告诉我。

像这样:

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.

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM