将数据从控制器保存到多个表中

本文关键字:保存 数据 控制器 | 更新日期: 2023-09-27 18:21:58

我有一个包含多个模型的视图模型:

public class MyViewModel
{
  Music.Models.Organizations Organizations {get; set;}
  Music.Models.People People {get; set;}
}

当用户在我的视图上填写了相应的字段并且用户按下了提交按钮时,我想将更改保存到控制器中的相应表中:(我有一个名为 db 的 MyViewModel 实例(

[HttpPost] public ActionResult Submit(MyViewModel model)
{
  if (ModelState.IsValid)
  {
    db. //what do I do here?
  }
}

在教程等中,我一次只看到一个模型被使用,因此他们可以做一些类似的事情

db.People.Add(model);
db.SaveChanges();

当用户按下提交按钮时,数据被保存到多个表中,我不确定如何在 ViewModel 中保存对每个表的更改。 任何帮助都会很棒!谢谢。

将数据从控制器保存到多个表中

您只需

保存作为视图模型属性的模型。 使用教程中的示例,如果要为这两个记录中的每一个添加新记录,则可能是这样的:

db.People.Add(model.People);
db.Organizations.Add(model.Organizations);
db.SaveChanges();

您可以在数据库上下文(db对象及其属性(中进行所需的所有添加/修改/等,当您调用.SaveChanges()时,它们都将发送到数据库。 在上面的代码中,该数据库调用最终将是两个INSERT语句。