2011-12-06 45 views
1

使用數據庫優先方法和Linq,如果我的視圖有一個強烈設置的填充模型,並且下面的代碼在編輯的填充中傳遞並更新我的填充表格數據庫,有沒有辦法更新相關的Rx表,以及不必創建一個可以訪問填充和Rxs的視圖模型?我是Linq的新手,並沒有能夠使其工作到目前爲止。基於MVC3 Linq用一個模型中的數據更新兩個表格

[HttpPost] 
public ActionResult Edit(Fill fill) 
{ 
    if (ModelState.IsValid) 
    { 
     db.Fills.Attach(fill); 
     db.ObjectStateManager.ChangeObjectState(fill, EntityState.Modified); 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 
    ViewBag.Rx_ID = new SelectList(db.Rxes, "Rx_ID", "DEA_Number", fill.Rx_ID); 
    return View(fill); 
} 
+0

你應該已經去過EF了。並引用臭名昭着的「沒有信息,因爲,DEA聯邦代理瘋了,因爲我是公然的..」 –

+0

@DougChamberlain謝謝,不太確定臭名昭着是如何讓我通過這個,但你試過。 – HendPro12

+0

我不知道我明白。你想在你的Rx表中更新什麼?我沒有看到任何數據在那裏更新。 –

回答

0

您的評論,並假設填充是一個完整的對象(即包括它的記錄ID和相關航行的ID),並假設你有外鍵和導航性能,那麼你就應該能夠使用導航屬性來執行此操作。

[HttpPost] 
public ActionResult Edit(Fill fill) 
{ 
    if (ModelState.IsValid) 
    { 
     db.Fills.Attach(fill); 
     db.ObjectStateManager.ChangeObjectState(fill, EntityState.Modified); 
     fill.Rx.status = "Filled"; // or whatever the status is 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 
    ViewBag.Rx_ID = new SelectList(db.Rxes, "Rx_ID", "DEA_Number", fill.Rx_ID); 
    return View(fill); 
} 

上述假設有一個1:填充1狀態的Rx,如果它是一個1:M比你將不得不使用一些LINQ得到你想要的正確的記錄。

相關問題