0

私は MVC2 を学習しており、データ要求管理システムを作成しようとしています。チケットシステムのようなもの。簡単な質問です。私の mvc コントローラー クラスには、作成後があります。

    [HttpPost]
    public ActionResult Create(Request request)
    {

        if (ModelState.IsValid)
        {
            try
            {
                // TODO: Add insert logic here
                var db = new DB();
                db.Requests.InsertOnSubmit(request);

                db.SubmitChanges();
                return RedirectToAction("Index");
            }
            catch
            {
                return View(request);
            }

        }
        else
        {
            return View(request);
        }

    }

OK、これは非常に簡単です。ビューを追加し、行を作成したら、主キー行の最初に 0 を取得します。その後、それはもう増加しません。別の行を追加すると、キャッチは私がいるのと同じビューに戻ります。主キーの int id が増加していないようです。

ここでID(int型)をどのように自動インクリメントしますか?主キーのタイプが int であるため、MVC がこれを処理しない理由が少しわかりません。id = 0 の最初の行のみを作成し、それだけです。

4

1 に答える 1

1

ID 列は、SQL サーバーのテーブルのID列として設定する必要があります。

また、次の場所にDBデータ コンテキストを作成する必要がありusingます。

using(var db = new DB())
{
  db.Requests.InsertOnSubmit(request); 

  db.SubmitChanges(); 
  return RedirectToAction("Index"); 
}

そうしないと、接続がいたるところにこぼれます。Windowsの初期のビルドよりも多くのメモリリークを作成します(まあ、トラフィックによって異なります;))

于 2012-05-15T13:57:17.963 に答える