NHibernate OnConnected

时间:2014-02-20 07:09:08

标签: c# oracle nhibernate fluent-nhibernate

我有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;
        }
    }

1 个答案:

答案 0 :(得分:3)

您可以使用自定义DriverConnectionProvider。通常,这用于动态更改连接,但它似乎非常适合您的方案。由于它负责创建和打开连接,因此可以保证在执行之前不会发生任何操作。