0

我有一个包含多个模型的 ViewModel:

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 中的每个表中。任何帮助都会很棒!谢谢。

4

1 回答 1

0

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

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

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

于 2013-07-10T23:28:18.140 回答