2014-02-20 2 views
1

У меня есть приложение .NET с Oracle Database и NHibernate. Мне нужно обработать какое-то событие «Connected», которое было создано до того, как NHibernate выполнил первый DbCommand с используемым в настоящее время OracleConnection. Это связано с необходимостью первичной инициализации контекста. Я должен быть уверен, что перед выполнением любого командного контекста была инициализирована. Есть ли такая возможность в NHibernate?NHibernate OnConnected

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

ответ

3

Вы можете использовать custom DriverConnectionProvider. Обычно это используется для динамического изменения соединения, но похоже, что оно подходит для вашего сценария. Поскольку он отвечает за создание и открытие соединения, вы гарантированно не выполняете никаких операций до его выполнения.

+0

Да, это работает! Благодарю. – Ali

Смежные вопросы