我有4张 table 。 OperationTable、ClientTable、ClientDetails、OperationRes
客户表
客户详情
操作表
操作资源
我有一个页面,我们要求客户填写表格以注册 smth。一切都必须在一页中,在客户提交表单后,我们必须将所有数据插入到它的表中。 OperationTable 的日期和时间,ClientTable 的名称和姓氏等。
我是 ASP.NET MVC 的新手。我曾尝试使用“代码 Fisrt”。我已经创建了模型,只是用它来自动生成 View 和 Controller 。但这不是我想要的。我找到了这个 Tutorial .它有效!但是我有超过 4 个表,行数比我上面写的要多。什么是最好的解决方案?
最佳答案
您需要一个包含要插入的所有数据的 View 模型,然后在您的 Controller 中创建基于该 View 模型的对象并使用 EF 插入。类似的东西:
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
}
然后在您的 Controller 中,使用您的 ViewModel 填充您的实体,然后使用 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();
}
您可能想查看使用 Repository Pattern 整理 Entity Framework 代码。你也可以看看automapper从您的 View 模型映射实体,以保存手动执行。
关于asp.net - 将数据插入到多表 MVC ASP 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23429888/