NHibernate: Signification des intercepteurs Valeur de retour
-
21-08-2019 - |
Question
Je pense que cela est une question facile, mais mon googling est faible sur ce point.
J'ai eu le problème décrit dans le lien suivant en ce qui concerne un ID généré et en cascade:
https://www.hibernate.org/hib_docs/nhibernate/ html / example-parentchild.html (vers le bas)
I fixés à l'aide de leur méthode suggérée d'un intercepteur. Tout semble fonctionner, donc je suis heureux.
Cela dit, je ne sais pas quelle est la signification de la valeur de retour est de méthodes telles que:
public override bool OnLoad(object entity, object id, object[] state, string[] propertyNames, IType[] types)
{
if (entity is Persistent) ((Persistent)entity).OnLoad();
return false;
}
public override bool OnSave(object entity, object id, object[] state, string[] propertyNames, IType[] types)
{
if (entity is Persistent) ((Persistent)entity).OnSave();
return false;
}
Dans les deux cas de faux est retourné.
Quand je Google sur NHibernate Interceptor Je vois beaucoup d'exemples de la façon d'écrire un. Certains retournent à la place vrai (
La solution Je crois que la valeur de retour doit indiquer si le paramètre d'état a été modifié dans la méthode d'interception. Vous avez raison - il est une question difficile à Google au moment -. Le site NHibernate déplacé semble récemment et Google n'a pas à trouver autant d'informations utiles comme autrefois
Autres conseils
Huey,
Lire la suite, je ne suis pas un programmeur .net, mais ce poste est très utile:
http://knol.google. com / k / fabio-Maulo / NHibernate-chapitre-11/14 / 1nr4enxv3dpeq #
Chapitre 11. Les intercepteurs et les événements Il est souvent utile pour l'application de réagir à certains événements qui se produisent à l'intérieur NHibernate. Ceci permet la mise en œuvre de certains types de fonctionnalités génériques, et l'extension de fonctionnalité NHibernate.
11.1. L'interface Interceptors IInterceptor fournit des callbacks de la session à l'application permettant l'application de consulter et / ou manipuler les propriétés d'une persistante objet avant qu'il soit sauvegardé, mis à jour, supprimé ou chargé. Une utilisation possible pour cela est de suivre l'audit information. Par exemple, la suivant IInterceptor automatiquement définit le createTimestamp lorsqu'une IAuditable est créé et met à jour la propriété lastUpdateTimestamp lorsqu'une IAuditable est mis à jour.
Je espère que ça vous Enlight un peu plus.