Asp.net
將數據插入多個表 MVC ASP 的最佳方法
我有 4 張桌子。OperationTable、ClientTable、ClientDetails、OperationRes
客戶表
- 客戶編號
- 姓名
- 姓
- 生日
- 版本號
客戶詳情
- 客戶編號
- 電子郵件
- 地址
- 電話
操作表
- 操作ID
- 日期
- 時間
- 客戶編號
操作資源
- 資源ID
- 操作ID
- 姓名
- 類型
- 不
我有一個頁面,我們要求客戶填寫表格以進行註冊。一切都必須在一頁中,並且在客戶送出表單後,我們必須將所有數據插入到它的表中。日期和時間到 OperationTable,姓名和姓氏到 ClientTable 等等。我是 ASP.NET MVC 的新手。我曾嘗試使用“程式碼優先”。我已經創建了模型,只是用它來自動生成視圖和控制器。但這不是我想要的。我找到了這個教程。有用!但是我有超過 4 個表格,其中的行數比我上面寫的要多。什麼是最好的解決方案?
您需要一個包含所有要插入的數據的視圖模型,然後在您的控制器中創建基於該視圖模型的對象並使用 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 }然後在您的控制器中,使用您的 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(); }您可能希望查看使用儲存庫模式整理實體框架程式碼 ,您還可以查看automapper以從您的視圖模型映射實體,以節省手動操作。