Best way to insert data to multiple table MVC ASP

后端 未结 2 562
無奈伤痛
無奈伤痛 2020-12-28 21:51

I have 4 tables. OperationTable, ClientTable, ClientDetails, OperationRes

ClientTable

  • ClientID
  • Name
  • Surname
  • Birthday
2条回答
  •  鱼传尺愫
    2020-12-28 22:07

    You want a view model that holds all the data you want to insert, then in your controller create the objects based on that view model and insert using EF. Something like:

    public class MyViewModel
    {
        public string Name {get; set;}
        public string Birthday {get; set;}
        public string VerNumber { get; set;}
        public string Email {get; set;}
        public string Address {get; set;}
        // etc etc for the rest of your data
    }
    

    Then in your controller, use your ViewModel to populate your entities, then insert using EF:

    [HttpPost]
    public ActionResult Add(MyViewModel model)
    {
         var client = new Client{
              Name = model.Name,
              Birthday = model.Birthday
         };
    
         var clientDetails = new ClientDetails();
    
         //etc for your other entities
    
         using (var context = new MyDbContext)
         {
              context.Clients.Add(client);
              clientDetails.ClientId = client.Id;
              context.ClientDetails.Add(clientDetails);
              //etc add your other classes
              context.SaveChanges();
    
         }
    
         //whatever you want to do here for the result, maybe direct to new controller
         //or return view
         return View();
    
    }
    

    You may want to look at tidying up the entity framework code using a Repository Pattern and you could also look at automapper to map entities from your viewmodel, to save doing it manually.

提交回复
热议问题