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?
  }
}

チュートリアルなどでは、一度に 1 つのモデルしか使用されていないので、次のようなことができます。

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

ユーザーが送信ボタンを押したときにデータが複数のテーブルに保存されるため、ViewModel の各テーブルに変更を保存する方法がわかりません。どんな援助も素晴らしいでしょう!ありがとう。

4

1 に答える 1

0

ビューモデルのプロパティであるモデルを保存するだけです。チュートリアルの例を使用すると、これら 2 つのそれぞれに新しいレコードを追加する場合、次のようになります。

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

すべての追加/変更/などを行うことができます。データベース コンテキスト (dbオブジェクトとそのプロパティ) 内で必要な情報を取得し、呼び出すと.SaveChanges()、それらはすべてデータベースに送信されます。上記のコードでは、データベース呼び出しは 2 つのINSERTステートメントになります。

于 2013-07-10T23:28:18.140 に答える