NHibernate:如何设置连接超时

在NHibernate连接失败(连接超时)之前,有没有办法全局设置等待连接到给定数据库的时间? 在ADO.NET中,您可以为这样的单个连接执行此操作:

new SqlConnection().ConnectionTimeout = 10; 

我发现如何在命令执行失败之前设置等待结果集的时间(命令超时)。 但是,显然,这不是我需要的

您可以在连接字符串“Connection Timeout = x”上设置它。

您可以在NHibernate配置代码中使用command_timeout设置。 有关完整详细信息,请参阅文档的第3.4节。

这个的XML配置如下……

   NHibernate.Dialect.MsSql2012Dialect  Server=(local);initial catalog=theDb;Integrated Security=SSPI  100    

我正在使用Fluent NHibernate,所以我的配置代码如下……

 FluentConfiguration configuration = Fluently.Configure() .Database(MsSqlConfiguration.MsSql2012.ConnectionString(ConnectionString)) .ExposeConfiguration(cfg => cfg .SetProperty("command_timeout", "100") .Mappings(m => { var cfg = CreateAutomappings(); m.AutoMappings.Add(cfg); }); 

使用NHibernate,您可以自己提供连接:

 sessionFactory.openSession(myConnection); 

我不推荐它,因为当NHibernate管理会话时更容易。

您仍然可以编写自己的连接提供程序,它可以在创建的连接上设置您想要的任何内容。