J'ai vue avec une forme, lorsque l'utilisateur soumet le formulaire, la méthode d'action assortie est comme:Impossible de mettre à jour l'objet dans une action de contrôle avec ASP.NET MVC?
public ActionResult Test(ViewModel vm, Member member)
{
//...
if (ModelState.IsValid)
{
try{
//...
member.OID = 1; //error here
//...
}Catch(Exception ex)
{
//...
}
}
}
Il fonctionne très bien avant, mais maintenant je reçois l'erreur comme ci-dessous lors de l'attribution de la valeur à une propriété d'objet : Le fonctionnement n'est pas valide en raison de l'état actuel de l'objet
pourquoi? comment le résoudre?
Merci. Tu as raison. L'OID est un FK. Mais si j'affecte member.Occupation = myOccupation; (myOccupation est un objet existant qui correspond à une ligne existante dans db pour la table Occupation), et l'enregistre (SubmitChanges), cela me donnera une autre erreur disant que je ne peux pas ajouter de clé dupliquée. Cela signifie qu'il essaie d'insérer une autre ligne avec le même ID pour Occupation. Assez confus. – KentZhou
Votre objet myOccupation doit être chargé à partir du même dataContext que l'objet membre chargé. voir - http://stackoverflow.com/questions/795196/linq-problem-with-inserting-new-rows-that-have-references-to-existing-records/795430#795430 – Jirapong