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管理会话时更容易。
您仍然可以编写自己的连接提供程序,它可以在创建的连接上设置您想要的任何内容。