Mon problème consiste à mettre à jour une entité via un formulaire d'édition avec une référence à une autre entité représentée par une liste déroulante. J'utilise ASP.NET MVC 2. Détails:Entité modifier le formulaire avec référence à une autre entité par liste déroulante
Public Class Category
{
int Id { get; set;}
string Name { get; set}
Category Parent { get; set}
}
- Une page d'édition de la catégorie générée par
EditorFor
- Modifier la page contient un menu déroulant pour sélectionner la catégorie parente, avec le nom/id =
Parent.Id
- Il y a une entrée 'none' dans la liste déroulante avec
value=''
(pour les catégories sans parent).
processus de mise à jour en action:
- entité actuelle extraite du référentiel par id.
- TryUpdateModel appliquée à l'entité récupérée
Problème:
Lorsqu'une catégorie éditée est soumise, si le menu déroulant est réglé sur « none » une nouvelle entité est instancié pour « parent » quand il essaie de mettre à jour sur le parent.id. Cela provoque des problèmes lors de la persistance via l'ORM. Alors, que faire dans cette situation? Est-il possible d'empêcher l'instanciation de l'objet 'parent' et de laisser la référence parente nulle?
Merci. J'utilise NHibernate comme ORM, au cas où cela serait utile.
J'espérais vraiment une solution plus générale. Cela doit être un scénario souvent confronté à un problème? Cependant, je devrais peut-être aller avec quelque chose comme ça. Merci. – UpTheCreek