I have 4 tables. OperationTable, ClientTable, ClientDetails, OperationRes
ClientTable
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.