Thanks,
Reason I was asking is because I cannot get the interceptor to be
called. I registered it with a session
like this

return SessionFactory.OpenSession(new IsTransientInterceptor());

and repository calls SaveOrUpdate on the session.
But the interceptor does not get called. I know I have dirty items in
a collection and I can see in trying to update. What else do I need to
do to get a call to interceptor?

Here is intereceptor imlementation

 public class IsTransientInterceptor :
global::NHibernate.EmptyInterceptor
    {
        public  void SetSession(ISession session)
        {
            base.SetSession(session);
        }

        public bool OnLoad(object entity, object id, object[] state,
string[] propertyNames, IType[] types)
        {
            base.OnLoad(entity, id, state, propertyNames, types);
            if (entity is IIsTransient) ((IIsTransient)entity).OnLoad
();
            return false;
        }

        public bool OnSave(object entity, object id, object[] state,
string[] propertyNames, IType[] types)
        {
            base.OnSave(entity, id, state, propertyNames, types);
            if (entity is IIsTransient) ((IIsTransient)entity).OnSave
();
            return false;
        }

        public bool? IsTransient(object entity)
        {
            base.IsTransient(entity);
            if (entity is IIsTransient)
            {
                return ((IIsTransient)entity).IsTransient;
            }

            return false;
        }
    }

here is the log

2009-03-18 11:03:05,494 [Task: Test Runner] DEBUG
NHibernate.AdoNet.ConnectionManager [(null)] - registering flush begin
2009-03-18 11:03:05,494 [Task: Test Runner] DEBUG
NHibernate.Persister.Collection.ICollectionPersister [(null)] -
Deleting rows of collection:
[SR.Domain.Client.Entities.Client.AccountTypeHistory#921115600]
2009-03-18 11:03:05,494 [Task: Test Runner] DEBUG
NHibernate.Persister.Collection.ICollectionPersister [(null)] - no
rows to delete
2009-03-18 11:03:05,510 [Task: Test Runner] DEBUG
NHibernate.Persister.Collection.ICollectionPersister [(null)] -
Updating rows of collection:
SR.Domain.Client.Entities.Client.AccountTypeHistory#921115600
2009-03-18 11:03:05,510 [Task: Test Runner] DEBUG
NHibernate.Persister.Collection.ICollectionPersister [(null)] - done
updating rows: 0 updated
2009-03-18 11:03:05,510 [Task: Test Runner] DEBUG
NHibernate.Persister.Collection.ICollectionPersister [(null)] -
Inserting rows of collection:
[SR.Domain.Client.Entities.Client.AccountTypeHistory#921115600]
2009-03-18 11:03:05,510 [Task: Test Runner] DEBUG
NHibernate.AdoNet.AbstractBatcher [(null)] - Opened new IDbCommand,
open IDbCommands: 1
2009-03-18 11:03:05,510 [Task: Test Runner] DEBUG
NHibernate.AdoNet.AbstractBatcher [(null)] - Building an IDbCommand
object for the SqlString: UPDATE PRDPROD.dbo.ClientAcctType SET
ClientId = ?, EffDt = ? WHERE ClientId = ? AND EffDt = ?
2009-03-18 11:03:05,526 [Task: Test Runner] DEBUG
NHibernate.Engine.IdentifierValue [(null)] - unsaved-value strategy
NONE
2009-03-18 11:03:05,526 [Task: Test Runner] DEBUG
NHibernate.Transaction.AdoTransaction [(null)] - Enlist Command
2009-03-18 11:03:05,557 [Task: Test Runner] DEBUG
NHibernate.AdoNet.AbstractBatcher [(null)] - Closed IDbCommand, open
IDbCommands: 0
2009-03-18 11:03:05,604 [Task: Test Runner] ERROR
NHibernate.Event.Default.AbstractFlushingEventListener [(null)] -
Could not synchronize database state with session
NHibernate.StaleStateException: Unexpected row count: 0; expected: 1


On Mar 18, 11:02 am, Fabio Maulo <[email protected]> wrote:
> No
>
> 2009/3/18 epitka <[email protected]>
>
>
>
> > Hi, Is there a way to use IsTransient from event listeners rather then
> > implementing interceptors.
>
> --
> Fabio Maulo
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to