如何将默认的FlushMode更改为在C#中提交? [英] How to change default FlushMode to Commit in C#?

查看:265
本文介绍了如何将默认的FlushMode更改为在C#中提交?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以...已经说过了:
$ b $ p如何将 FlushMode 更改为在C#中提交



我的意思是,在Fluent NHibernate FlushMode默认设置为Auto。



所以...设置FluentMode为提交,我需要打开会话,然后更改它:

  var someSessionFactory = ... bla bla ..; 
var session = someSessionFactory.OpenSession();
session.FlushMode = FlushMode.Commit;

这将工作但是...这意味着我需要调用包含 FlushMode.Commit 每次我是开幕式。
为了让sessionFactory自动化,我有几个包装(意思是只设置一次,然后在打开新的上下文时自动使用它),这意味着我不能每次都直接打开会话而不需要挖掘工厂类型等等。



有没有办法将<默认> FlushMode 从Auto更改为Commit?有没有办法做到这一点 var sessionFactory = Fluently.Configure()。 ...



编辑

尝试过的第二件事情

pre $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ this._sessionFactory = ()
.Database(
MsSqlConfiguration.MsSql2008
.ConnectionString(this._connectionString)
.AdoNetBatchSize(10)
.QuerySubstitutions(true 1,假0,是'是',否'N'))
.Cache(c => c.Not.UseSecondLevelCache()。Not.UseQueryCache())
.Mappings(m => ;
{
foreach(mappingAssemblies中的程序集asm)
{
m.FluentMappings.AddFromAssembly(asm);
m.HbmMappings.AddFromAssembly(asm);

))
.ExposeConfiguration(ModifyConfiguration)
.BuildSessionFactory();

var session = _sessionFactory.OpenSession();

$ b $ public void ModifyConfiguration(NHibernate.Cfg.Configuration configuration)
{
configuration.Properties [default_flush_mode] = FlushMode.Commit.ToString();

我调用了 _sessionFActory.OpenSession()来查看FlushMode是否已经改变,并且没有。仍然FlushMode是自动,而不是提交。

解决方案

没有办法如何配置默认FlushMode为ISession。我这样做的方式以及常见的方式是进入 ISessionFactory.OpenSession() (IoC, MVC AOP过滤器,Web API委托),并分配FlushMode (手动)

  var session = SessionFactory.OpenSession(); 
session.FlushMode = FlushMode.Commit;

检查以下内容:

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆