2011-04-26 43 views
0

所以我有一個視圖綁定到實體(tblOutreachSpecialist)。當該視圖回傳給服務器時,它將記錄該更改的實體(同樣,實體tblOutreachSpecialist)發回。ASP.NET MVC Controller中的編輯動作無法更新實體框架實體的更改

但是,我無法成功保存這些更改。

我有一個實體上下文,範圍覆蓋整個控制器。

[AcceptVerbs(HttpVerbs.Post)] public RedirectToRouteResult eOS(DAL.tblOutreachSpecialist spec) {

 int id = spec.OSID;    
     tblOutreachSpecialist specold = ent.tblOutreachSpecialists.Where(c => c.OSID == id).FirstOrDefault();    
     specold = spec; 
     specold.FirstName = spec.FirstName; 
     specold.LastName = spec.LastName; 
     specold.AreaCode = spec.AreaCode; 
     specold.PhoneNumber = spec.PhoneNumber; 
     specold.PhoneExtension = spec.PhoneExtension; 
     specold.WirelessNumber = spec.WirelessNumber; 
     specold.Fax = spec.Fax; 
     specold.TTY = spec.TTY; 
     specold.Email = spec.Email; 
     specold.Mobile = spec.Mobile; 
     specold.EmployeeStartDate = spec.EmployeeStartDate; 
     specold.OSTargetGroup = spec.OSTargetGroup; 
     specold.Location = spec.Location; 
     specold.Username = spec.Username; 
     specold.Domain = spec.Domain; 
     specold.DateStamp = spec.DateStamp; 
     ent.SaveChanges(); 
     return RedirectToAction("gOses"); 
    } 

我試圖簡單地等同兩個(specold =規格);那沒用。因此,我試圖明確地映射屬性。

當我調用SaveChanges()時,它不會持續更改。

我也嘗試在這個動作中創建一個新的上下文,再次找到實體並保存更改。再次運氣不好。

爲什麼Entity框架不會將此視爲更改並將其保存?

回答

2

您是否嘗試刪除specold = spec;

0

因此,我重新編寫了代碼,發現IE 9沒有向服務器發送請求(使用Ajax.ActionLink編寫)。所以它是保存的,但是當我去檢索相同的記錄時,它是在不去服務器並獲取更新記錄的情況下拉取舊值。