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.

È stato utile?

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ù.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top