0

次のメイン フィールド (TechnologyID、TechnologyTypeID、タイムスタンプなど) を持つ Technology という名前の親テーブルがあります。

次に、ラック、サーバー、VM、PC などのタイプごとのテーブルを継承します。ここで、各子テーブルの ID は、親テーブル内の TechnologyID への外部キーでもあります。

これで、新しいラックを追加する次のアクション メソッドができました:-

[HttpPost]
        public ActionResult Create(Server server)
        {
            if (ModelState.IsValid) {

                repository.InsertOrUpdateServer(server);
                repository.Save();

return RedirectToAction("Index");
            }
else {
return View();
            }
        }

ただし、テーブル PK と FK である RACKID が null であるため、上記では例外が発生します。だから私の質問は、親テーブル(Technology)の新しいインスタンスを追加してそのIDを取得し、データベースに保存する前にこのIDをサーバーに割り当てる方法です?

4

1 に答える 1

0

/を子としてtechnology追加するオブジェクトの参照 / ID を取得します。serverrack

[HttpPost]
        public ActionResult Create(Server server, int technologyID)
        {
            if (ModelState.IsValid) {

                var technology = repository.Technologies.Where(t => t.Id == technologyID).FirstOrDefault();
                server.technologyId = technology.Id;
                repository.InsertOrUpdateServer(server);
                repository.Save();

return RedirectToAction("Index");
            }
else {
return View();
            }
    }
于 2013-07-20T23:00:07.613 に答える