如何在多对多关系上执行插入操作

时间:2017-07-11 13:26:21

标签: c# sql-server asp.net-mvc wcf

我需要你的帮助,

我不知道从哪里开始,但我正在使用asp.net mvc和wcf技术进行招聘管理应用程序,我有一个管理部分的优惠,开始我有多对多的关系在要约和候选人表之间。

现在我希望当候选人选择适合他的报价时,当他点击申请按钮时,报价的ID和候选人的ID会在CandidateOffre关联表中注册。

这就是我所做的,谢谢你告诉我我错过了什么,以便插入正确完成,

  • 服务器端(wcf)

    public CandidatDTO CreateCandidat(CandidatDTO c)
    {
      CandidatEmploi candidatEmp = new CandidatEmploi();
      CSRMappers.MapCandidatDTOToEntity(c, candidatEmp);
    
          if (c.OffreEmploi != null && c.OffreEmploi.Any())
          {
              foreach (var f in c.OffreEmploi)
              {
                 if (f.IDOffre == 0)
                 {
                    OffreEmploi of = new OffreEmploi();
                    CSRMappers.MapOffreDTOToEntity(f, of);
                    candidatEmp.OffreEmploi.Add(of);
                 }
                 else
                 {
                    //look for offer
                    var of = CRE.OffreEmploi.Find(f.IDOffre);
                    if (of != null)
                       candidatEmp.OffreEmploi.Add(of);
                 }
              }
          }
          CRE.CandidatEmploi.Add(candidatEmp);
          CRE.SaveChanges();
          c.IDCandidat = candidatEmp.IDCandidat;
          return c;
       }
    
  • 客户端(MVC)

       [HttpGet]
       public ActionResult PostE(int id)
       {
         var candidat = new CSRServiceReference.CandidatDTO();
         candidat.OffreEmploi = new List<OffreDTO>();
         if (id > 0)
         {
            var offre = CREClient.GetOffre(id);
            if(offre != null)
            {
                 candidat.OffreEmploi.Add(offre);
            }
         }
    
         candidat.Experiences = new List<CSRServiceReference.ExpProDTO>();
         candidat.Formations = new List<CSRServiceReference.FormationDTO>();
         candidat.ConnInfo = new List<CSRServiceReference.ConnaissInfoDTO>();
         candidat.ConnLing = new List<CSRServiceReference.connaissLingDTO>();
         return View(candidat);
       }
    
    
        [HttpPost, ActionName("PostE")]
        public ActionResult PostEmp(CSRServiceReference.CandidatDTO candidat)
       {
          if (ModelState.IsValid)
          {
             candidat.StatutCandidat = "En attente";
    
             var newC = CREClient.CreateCandidat(candidat);
             return RedirectToAction("EditCandidat", "Home", new { id = newC.IDCandidat });
    
          }
          return View(candidat);
    
       }
    

但遗憾的是,关联表仍为空,

我不知道问题究竟在哪里:/

感谢您回答我。

0 个答案:

没有答案