Digging more into this, I actually don't need to do anything with
SaveOrUpdateEvent as it pertains to session.SaveOrUpdate. I need to
handle PreInsert and PreUpdate events.

On Sep 30, 7:39 am, epitka <[email protected]> wrote:
> I guess, I should have take a closer look at that event listener
> declaration before posting. I mistyped the name of event listener. It
> should be
>
>   <listener
> class="NHibernate.Event.Default.DefaultSaveOrUpdateEventListener,
> NHibernate"/>
>
> On Sep 30, 7:20 am, epitka <[email protected]> wrote:
>
>
>
> > I cannot persist my entity and I get the message above but only when I
> > use event listener. Does anybody know why? Here are the facts:
>
> > NHibernate 2.1, FluentNHibernate 1.0, Castle Dynamic proxy provider
>
> > Mapping for MetaProject:
>
> >  public class MetaProjectMap : ClassMap<MetaProject>
> >     {
> >         public MetaProjectMap()
> >         {
> >             DefaultAccess.ReadOnlyPropertyThroughCamelCaseField
> > (CamelCasePrefix.Underscore);
>
> >             Table("dnnSphere_Project");
>
> >             Id(x => x.Id).Access.LowerCaseField
> > (Prefix.Underscore).GeneratedBy.HiLo("1").UnsavedValue(0); ;
>
> >             Map(x => x.Name).Column("Name").Unique().Not.Nullable
> > ().Length(50);
> >             Map(x => x.Description).Column("Description").Length(50);
>
> >             HasMany<MetaPackage>(x => x.MetaPackages).Table
> > ("dnnSphere_Package").KeyColumn("Id")
> >                 .Inverse().LazyLoad().Cascade.AllDeleteOrphan()
> >                 .Access.ReadOnlyPropertyThroughCamelCaseField
> > (Prefix.Underscore)
> >                 .CollectionType
> > ("dnnSphere.NHibernate.Collections.PersistentBagType`1
> > [[dnnSphere.Meta.Model.MetaPackage, dnnSphere.Meta]],
> > dnnSphere.NHibernate.Collections");
> >         }
> >     }
>
> > NHibernate config file:
>
> >  <property
> > name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFa 
> > ctory,
> > NHibernate.ByteCode.Castle</property>
>
> >  <property name="current_session_context_class">
> >         web
> >  </property>
>
> > <event type="save-<listener
> > class="dnnSphere.Meta.NHibernate.SaveOrUpdateEventListener,dnnSphere.Meta"/
>
> >         <listener
> > class="NHibernate.Event.Default.DefaultUpdateEventListener,
> > NHibernate"/>
> >   </event>
>
> > Code that I am testing this with:
>
> >  ISession session = NHibernateHelper.Instance.GetCurrentSession();
> >             try
> >             {
> >                 session.BeginTransaction();
> >                 metaProject = MetaProject.Create();
> >                 metaProject.Name = txtName.Text;
> >                 metaProject.Description = txtDescription.Text;
> >                 session.SaveOrUpdate(metaProject);
> >                 session.Flush();
>
> >                 var n =
> > NHibernateHelper.Instance.SessionFactory.Statistics.EntityInsertCount;
>
> >                 session.Transaction.Commit();
> >             }
> >             catch (Exception ex)
> >             {
> >                 session.Transaction.Rollback();
> >                 throw;
> >             }
> >             finally
> >             {
> >                 session.Close();
> >             }
>
> > Event listener:
>
> >   public class SaveOrUpdateEventListener : ISaveOrUpdateEventListener
> >     {
>
> >         public void OnSaveOrUpdate(SaveOrUpdateEvent @event)
> >         {
> >             IPersistentObjectLifeCycle o = @event.Entity as
> > IPersistentObjectLifeCycle;
>
> >             if (o != null)
> >             {
> >                 o.OnSaveOrUpdate();
> >             }
>
> >         }
> >     }
--~--~---------~--~----~------------~-------~--~----~
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