Je veux suivre les changements dans mon modèle de domaine. Je sais que NHibernate ISession est une implémentation du pattern UnitOfWork, donc il suit ces changements. Est-il possible de les retirer, par exemple, avant Commit() ou Flush()?Récupère la liste des champs modifiés dans l'entité de NHibernate Session
2
A
Répondre
1
Jetez un oeil à IInterceptor NHibernate.
OnFlushDirty - affichera les propriétés persistantes sur un objet mis à jour. OnSave - affiche les propriétés persistantes sur un objet enregistré.
Vous avez juste besoin de créer une classe d'intercepteurs qui implémente cette interface, et lorsque vous configurez votre session NHibernate, dites-lui d'utiliser cette classe.
1
Je pense que Interceptor sont un peu obsolètes. Еrying pour utiliser NHibernate Events. Je me suis abonné à l'événement OnPreUpdate. Son paramètre a les propriétés State et OldState, mais OldState est toujours nul. Est-ce que quelqu'un sait que OldState fonctionne?
Questions connexes
- 1. Copier des valeurs de session dans des champs de saisie
- 2. Gestion de session NHibernate?
- 3. "La session est fermée!" - NHibernate
- 4. nHibernate session et multithread
- 5. Comment insérer dans NHibernate DB après la session NHibernate
- 6. Obtenir la liste des champs dans la structure
- 7. Récupère les lignes "environnantes" dans la requête NHibernate
- 8. Meilleure façon de gérer la session dans NHibernate?
- 9. Champs personnalisés SharePoint dans la vue Liste
- 10. Récupère la liste parente d'un objet gridview
- 11. Open/Close NHibernate Session
- 12. champs NHibernate Identité
- 13. Datacontext et Nhibernate Session
- 14. NHibernate sans session
- 15. Nhibernate - Obtenir une liste
- 16. C# - Liste des sessions d'ouverture de session
- 17. Utilisation des champs dans une liste de sharepoint « recherche-ed »
- 18. Liste de magasins à la session
- 19. sql pour détecter les champs modifiés dans le déclencheur de mise à jour (SQL Server 2005)?
- 20. NHibernate Win Forms Session Management
- 21. NHibernate: Comment combiner des champs de deux classes?
- 22. Comment désactiver la liste de champs à l'exécution dans PerformancePoint?
- 23. Workflow qui sait quels champs ont été modifiés
- 24. Erreur lors de la création de la session Fluent NHibernate Session
- 25. Session NHibernate avec IIS 7
- 26. NHibernate Passage de session au référentiel
- 27. Créer une liste et des champs SharePoint dans une entité
- 28. NHibernate Cartographie Entité de champs dans une même table
- 29. Récupère le nom de la propriété dans le setter
- 30. Mappage de champs booléens Oracle avec nHibernate
Si vous appelez 'session.Merge (yourUnsavedObject)' NHibernate chargera d'abord l'entité, puis appliquera les modifications de l'objet non enregistré. Ce processus remplira alors OldValues. Ceci utilise la version 3.1. Je crois que les versions précédentes utilisaient SaveOrUpdateCopy(). –