我有一个问题,这是非常类似这样的问题:问题与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