Je suis en train d'utiliser NHibernate dans un projet. Toutes mes tables de domaine incluent un champ 'CreatedBy' qui est une clé étrangère à la table Users. Comme il s'agit d'une application ASP.NET, la seule information que j'ai sur l'utilisateur au moment de l'enregistrement est le nom d'utilisateur, à partir du cookie.NHibernate - sauvegarder l'ID utilisateur du créateur de nom d'utilisateur
Quelle est la meilleure approche pour obtenir l'ID utilisateur et l'enregistrer dans le champ CreatedBy de la table de domaine? Par exemple, il serait simple d'écrire du code dans l'application pour charger l'utilisateur à partir du nom d'utilisateur, et coller sa propriété UserId dans la propriété CreatedBy de l'objet domaine avant de l'enregistrer. Cependant, ce serait maladroit (je devrais me rappeler de faire tout ceci chaque fois que persister un objet de domaine nouvellement créé) et impliquerais également deux coups à la base de données, que j'éviterais plutôt.
Quelle est la façon la plus simple et la plus élégante de le faire?
Merci
David
Oui, il semble que les options sont celles-ci, ou utilisez l'élément dans le fichier de mapping pour appeler un sproc. Merci –
David
David, je recommanderais l'approche d'intercepteur, et aurais toutes les entités applicables implémenter une interface commune - c'est probablement la méthode la plus sèche disponible. Nous faisons cela pour des choses telles que IHaveCreationDate, IHaveLastModifiedDate, etc. – DanP