2017-10-02 7 views
0

を複製する:
アイテム:私は、このモデルクラス持ってどのように自動インクリメントの主キーでASP.NET MVC

public ITEM_ID { internal get; set; } 
public int ITEM_CODE { get; set; } 
public string STATE_NAME { get; set; } 

ITEM_IDは、主キーとそのAUTO_INCREMENTです。
私がやりたいことは、私は[保存]ボタンをクリックすると、自動生成されるプライマリキー(ITEM_ID)の値は、複製され、またITEM_CODE

コントローラに保存されるべきであるということである。

public ActionResult Create(ITEM item) 
{ 
    try 
    { 
     // TODO: Add insert logic here 
     if (ModelState.IsValid) 
     { 

      _itemService.AddItem(item); 
      return RedirectToAction("Index"); 
     } 
    } 
    catch 
    { 
     ModelState.AddModelError("", "We cannot add this Item. Verify your data entries !"); 
    } 

    return View(item); 
} 
+0

どのデータベーステクノロジを使用していますか? MVCはプレゼンテーションパターンであり、主キーなどとは何も関係ありません。 – Liam

答えて

3

idは手動でC#コードで設定できます。 次のような意味があります。

if (ModelState.IsValid) 
{ 
    item.ITEM_ID = SetItemID(); 
    _itemService.AddItem(item); 
    return RedirectToAction("Index"); 
} 

private int SetItemID() 
{ 
    //Get the latest ID from database 
    return lastId + 1 ; 
} 
+0

私の質問が愚かであれば申し訳ありません。システムは** lastId **が不明であると言っています。どうすれば解決できますか – Gbenga

+0

lastIdを定義してコメントエリアに設定する必要があります。それはあなたの定義に基づいています。例えば、dbmlで定義すると、あなたはdataccontextを定義して、クエリは次のようになります。 using(DataContextProvider dcp = new DataContextProvider()) { リポジトリ

rep =新しいリポジトリ
(dcp); rep.GetAll()。First()。OrderByDescending(t => t.ID); //ここではTop linqクエリを使用する必要があります。 の例ですが、プロジェクトごとに変更されるので、独自の接続文字列...等。 –

関連する問題