我想知道Nihbernate是否将作为参数提供的数据库连接关闭到OpenSession
方法。
实施例
using(var session = sessionFactory.OpenSession(connection))
{
}
我希望连接与会话一起处理。
祝你好运, Alexey Zakharov
答案 0 :(得分:0)
我用自定义的DriverConnectionProvider解决了我的问题
public class TenantConnectionProvider : DriverConnectionProvider
{
public override IDbConnection GetConnection()
{
IDbConnection conn = Driver.CreateConnection();
try
{
conn.ConnectionString = // Tenant connection string provider called here
conn.Open();
}
catch (Exception)
{
conn.Dispose();
throw;
}
return conn;
}
}
在这种情况下,我可以使用OpenSession方法而不提供连接字符串作为参数。
答案 1 :(得分:0)
它没有。 NHibernate会话只管理它创建的连接的生命周期;如果连接是从外部提供的,则会话永远不会关闭,即使Dispose()
也是如此。