我通常使用edmx's來完成此操作,但這次爲了在我的項目中使用級聯下拉菜單,我不得不切換到使用linq to sql。如何在mvc中使用linq to sql提交對數據庫表的更改
反正這裏是我試過
[HttpPost]
public ActionResult Modules(ModuleViewModel mvm, FormCollection fc)
{
AllCourseDetail ACD = _dc.AllCourseDetails.Where(x => x.IdACD == mvm.cd.IdACD).FirstOrDefault();
ACD = mvm.cd;
if (ModelState.IsValid)
{
UpdateModel(mvm);
_dc.AllCourseDetails.Where(w => w.IdACD == mvm.cd.IdACD);
UpdateModel(mvm.cd);
_dc.SubmitChanges();
Session.Add("redirectedEditcompletedsubmission", "yes");
return RedirectToAction("List");
}
else
{
Session.Add("redirectedEditvalidation", "yes");
return RedirectToAction("Index", "Home");
}
}
在第一次我沒有if語句上述任何東西,裏面我只有的UpdateModel和提交的變化,但無論怎樣組合,我嘗試它只是沒有按不保存。
而且mvm.cd是在視圖模型作爲CD引用的AllCourseDetail表,我必須使用一個視圖模型作爲
這行代碼是做什麼的? '_dc.AllCourseDetails.Where(w => w.IdACD == mvm.cd.IdACD);'它似乎是Linq語句,但輸出不分配給任何東西。看看這裏:http://stackoverflow.com/a/1427970 – 2012-03-09 16:51:19
@RobertHarvey我試圖在那裏,以防我可以使用它來確保提交知道它正在進行更改的記錄,因爲我說我嘗試過其中大部分事情我都沒有預料到,但爲了以防萬一,我仍然嘗試過。 – Myzifer 2012-03-09 16:56:19
看看我鏈接的問題。它說明了你正在嘗試做什麼的一般模式。正如Jakub正確指出的那樣,NerdDinner有這類事情的代碼示例。看到這裏:http://www.asp。net/mvc/tutorials/nerddinner/provide-crud-(create,-read,-update,-delete)-data-form-entry-support – 2012-03-09 16:57:30