NHibernate:Significato di intercettori valore di ritorno
-
21-08-2019 - |
Domanda
Penso che questa è una domanda facile, ma il mio googling è debole su questo.
Ho avuto il problema descritto nel seguente link per quanto riguarda un ID generato e a cascata:
https://www.hibernate.org/hib_docs/nhibernate/html/example-parentchild.html (verso il basso)
Ho risolto utilizzando il loro metodo suggerito di Intercettore.Tutto sembra funzionare, quindi sono felice.
Detto questo, non ho idea di quale sia il significato del valore di ritorno è da metodi come:
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;
}
In entrambi i casi viene restituito false.
Quando ho google su NHibernate Intercettori vedo un sacco di esempi di come scrivere uno.Alcuni, invece, restituisce true (http://www.lostechies.com/blogs/rhouston/archive/2008/03/27/creating-a-timestamp-interceptor-in-nhibernate.aspx).Non ho idea di che cosa la differenza è qui.Il mio codice funziona, ma Intercettori sembra utile per me per cui mi piacerebbe avere una migliore comprensione.
Soluzione
Credo che il valore di ritorno deve indicare se il parametro di stato è stato cambiato nel interceptor metodo.Hai ragione è difficile da google al momento - il NHibernate sito spostato di recente e google non sembra trovare più informazioni utili come.
Altri suggerimenti
Huey,
Leggi questo post, io non sono un programmatore .net, ma questo post è molto utile:
http://knol.google. com / k / fabio-Maulo / NHibernate-capitolo-11 / 1nr4enxv3dpeq / 14 #
Capitolo 11. intercettori ed eventi It è spesso utile per l'applicazione di reagire a determinati eventi che si verificano all'interno NHibernate. Questo permette attuazione di alcuni tipi di funzionalità generiche, e l'estensione di funzionalità NHibernate.
11.1. Intercettori L'interfaccia IInterceptor fornisce callback dal sessione all'applicazione permettendo l'applicazione di ispezionare e / o manipolare proprietà di un persistente oggetto prima che venga salvato, aggiornato, cancellato o caricato. Un possibile utilizzo per questo è di tenere traccia di revisione informazione. Ad esempio, la dopo IInterceptor automaticamente imposta il createTimestamp quando un IAuditable si crea e aggiorna il Proprietà lastUpdateTimestamp quando un IAuditable viene aggiornato.
Spero che ti Enlight un po 'di più.