我有一個問題,這是非常類似這樣的問題:問題與EDM在ASP.NET MVC
Strongly-Typed ASP.NET MVC with Entity Framework
但對於這一問題的解決方案並不爲我工作。首先讓我說,我對這個問題不瞭解很多。
我有以下代碼
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(PaymentInformation paymentInformationToEdit, int pensionFundID)
{
var originalPaymentInformation = (from PIs in _db.PaymentInformation
where PIs.employeeNumber == paymentInformation.employeeNumber
select PIs).First();
var laborUnion = (from LUs in _db.LaborUnion
where LUs.laborUnionID = laborUnionID
select LUs)First();
paymentInformationToEdit.laborUnion = laborUnion;
_db.ApplyProperyChanges(originalPaymentInformation.EntityKey.EntitySetName, paymentInformationToEdit);
_db.SaveChanges();
}
我得到一個錯誤,當我嘗試了ApplyProperyChanges說「在ObjectContext中現有的對象是在增加的狀態。只有在現有對象處於未更改或已修改狀態時才能應用更改'。
我不知道如何改變狀態,或者即使我正在做一些根本性的錯誤。請指教。
編輯:我希望這是在這裏的方式去在stackoverflow。我沒有得到解決我的問題的答案,但Gregoire發佈了一個我不明白的可能解決方案。我希望這個編輯能夠碰到我的問題,這樣有人會看到它並幫助我。對不起,如果這不是路要走。
我不知道我的理解。我試過: originalPaymentInformation.Employee = paymentInformationToEdit.Employee; 但這只是給我一個錯誤,說'發生了參照完整性約束違規。當對象具有非臨時密鑰時,屬於參照完整性約束的屬性無法更改'。 我誤解了你的答案? – Mannsi 2009-08-15 09:15:07