Como alterar o FlushMode padrão para Confirmar em C #?
Então ... já disse:
Como mudarFlushMode
paraCommit
em c #?
Quero dizer, no Fluent NHibernate, o FlushMode, por padrão, está definido como Automático.
Então ... para definir FluentMode comoCometer, entregar, Preciso abrir a sessão e alterá-lo:
var someSessionFactory = ... bla bla ..;
var session = someSessionFactory.OpenSession();
session.FlushMode = FlushMode.Commit;
Isso vai funcionar, mas ... isso significa que eu preciso chamar o método que contémFlushMode.Commit
cada vez que estou abrindo a sessão. Para inicializar o sessionFactory, tenho vários envoltórios (destinados a defini-lo apenas uma vez e depois usá-lo automaticamente quando um novo contexto é aberto), o que significa que não posso simplesmente abrir a sessão diretamente toda vez que quiser sem procurar no tipo de fábrica e etc.
Existe uma maneira dealterar padrão FlushMode de Automático para Confirmar? Existe uma maneira de fazer isso emvar sessionFactory = Fluently.Configure(). ...
?
EDITAR:
Tentei segundo coisa
public void Initialise(params Assembly[] mappingAssemblies)
{
this._sessionFactory = Fluently.Configure()
.Database(
MsSqlConfiguration.MsSql2008
.ConnectionString(this._connectionString)
.AdoNetBatchSize(10)
.QuerySubstitutions("true 1, false 0, yes 'Y', no 'N'"))
.Cache(c => c.Not.UseSecondLevelCache().Not.UseQueryCache())
.Mappings(m =>
{
foreach (Assembly asm in mappingAssemblies)
{
m.FluentMappings.AddFromAssembly(asm);
m.HbmMappings.AddFromAssembly(asm);
}
})
.ExposeConfiguration(ModifyConfiguration)
.BuildSessionFactory();
var session = _sessionFactory.OpenSession();
}
public void ModifyConfiguration(NHibernate.Cfg.Configuration configuration)
{
configuration.Properties["default_flush_mode"] = FlushMode.Commit.ToString();
}
Liguei_sessionFActory.OpenSession()
para ver se FlushMode mudou e ... Não. Ainda FlushMode é Auto, em vez de Confirmar.