我有Oracle数据库和NHibernate的.NET应用程序。 我需要处理一些" Connected"在NHibernate使用当前使用的OracleConnection执行第一个DbCommand之前引发的事件。这是由于主要上下文初始化的必要性。我需要确保在执行任何命令上下文之前已初始化。 NHibernate有这种可能吗?
P.S。我不能为此目的使用Oracle ON LOGON TRIGGER
UPD。解决方案是:
public class CustomConnectionProvider : DriverConnectionProvider
{
public override System.Data.IDbConnection GetConnection()
{
var conn = (OracleConnection)base.GetConnection();
//init context
return conn;
}
}
答案 0 :(得分:3)
您可以使用自定义DriverConnectionProvider。通常,这用于动态更改连接,但它似乎非常适合您的方案。由于它负责创建和打开连接,因此可以保证在执行之前不会发生任何操作。