nHibernate Save Or Update Event Listener
Inheritance: NHibernate.Event.Default.DefaultSaveOrUpdateEventListener
コード例 #1
0
        private ISessionFactory CreateSessionFactory()
        {
            var eventListenerHelper = new EventListenerHelper(principalAccessor);
            var saveOrUpdateEventListener = new SaveOrUpdateEventListener(eventListenerHelper);
            var deleteEventListener = new DeleteEventListener(eventListenerHelper);

            return
                Fluently.Configure()
                        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<IEntity>()
                                        .Conventions.Add(ForeignKey.EndsWith("Id"))
                                        .Conventions.Add<EnumConvention>())

                        .ExposeConfiguration(c => c.SetListener(ListenerType.Delete, deleteEventListener))
                        .ExposeConfiguration(c => c.SetListener(ListenerType.SaveUpdate, saveOrUpdateEventListener))
                        .ExposeConfiguration(c => c.SetListener(ListenerType.Save, saveOrUpdateEventListener))
                        .ExposeConfiguration(c => c.SetListener(ListenerType.Update, saveOrUpdateEventListener))

                        .BuildConfiguration()
                        .BuildSessionFactory();
        }
コード例 #2
0
        private ISessionFactory CreateSessionFactory()
        {
            FluentConfiguration fluentConfiguration = Fluently.Configure();
            MsSqlConfiguration sqlConfiguration = null;

            if (!string.IsNullOrEmpty(configuration.Database.ConnectionString))
            {
                sqlConfiguration = MsSqlConfiguration.MsSql2008.ConnectionString(configuration.Database.ConnectionString);
            }
            else if (!string.IsNullOrEmpty(configuration.Database.ConnectionStringName))
            {
                sqlConfiguration = MsSqlConfiguration.MsSql2008.ConnectionString(f => f.FromConnectionStringWithKey(configuration.Database.ConnectionStringName));
            }

            if (sqlConfiguration != null)
            {
                if (!string.IsNullOrEmpty(configuration.Database.SchemaName))
                {
                    sqlConfiguration.DefaultSchema(configuration.Database.SchemaName);
                }

                fluentConfiguration = fluentConfiguration.Database(sqlConfiguration);
            }

            mappingResolver.AddAvailableMappings(fluentConfiguration);

            var eventListenerHelper = new EventListenerHelper(securityService);
            var saveOrUpdateEventListener = new SaveOrUpdateEventListener(eventListenerHelper);
            var deleteEventListener = new DeleteEventListener(eventListenerHelper);

            fluentConfiguration = fluentConfiguration
                .Mappings(m => m.FluentMappings
                                   .Conventions.Add(ForeignKey.EndsWith("Id"))
                                   .Conventions.Add<EnumConvention>())
                .ExposeConfiguration(c => c.SetProperty("show_sql", "false"))
                .ExposeConfiguration(c => c.SetListener(ListenerType.Delete, deleteEventListener))
                .ExposeConfiguration(c => c.SetListener(ListenerType.SaveUpdate, saveOrUpdateEventListener))
                .ExposeConfiguration(c => c.SetListener(ListenerType.Save, saveOrUpdateEventListener))
                .ExposeConfiguration(c => c.SetListener(ListenerType.Update, saveOrUpdateEventListener));

            return fluentConfiguration
                        .BuildConfiguration()
                        .BuildSessionFactory();
        }