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

时间:2013-07-10 23:25:08

标签: c# asp.net-mvc

我有一个包含多个模型的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中保存对每个表格的更改。任何帮助都会很棒!感谢。

1 个答案:

答案 0 :(得分:0)

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

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

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