我有或多或少的標準看型號:檢測模型屬性的狀態變化,控制器,使用實體框架
public class Project {
public int ID { get; set; }
//... some more properties
public DateTime StartDate { get; set; }
public int Duration { get; set; }
}
如果用戶修改StartDate
或項目Duration
,我要調用一個函數來更新一個模擬。爲了實現這一點,我想檢測領域的控制器內StartDate
和Duration
的狀態變化。
類似的東西:
if(project.StartDate.stateChange() || project.Duration.stateChange())
這裏的控制器方法是什麼樣子的例子:
[HttpPost]
public ActionResult Edit(Project project)
{
if (ModelState.IsValid)
{
if(project.StartDate.stateChange() || project.Duration.stateChange())
doSomething();
db.Entry(project).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(project);
}
任何想法,我怎麼能做到這一點?
我alreadey試過這種跟蹤多個目標。我收到以下錯誤: 'ObjectStateManager中已存在具有相同鍵的對象。 ObjectStateManager不能使用同一個鍵跟蹤多個對象。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。 異常詳細信息:System.InvalidOperationException:具有相同鍵的對象已存在於ObjectStateManager中。 ObjectStateManager無法使用相同的密鑰跟蹤多個對象。' – Chopo87
有無'db.Entry(original).State = EntityState.Modified;'? –
好點,讓我試試看 – Chopo87