2014-02-20 1 views
1

Oracle 데이터베이스와 NHibernate가있는 .NET 어플리케이션이 있습니다. NHibernate가 현재 사용중인 OracleConnection과 함께 첫 번째 DbCommand를 실행하기 전에 발생한 "Connected"이벤트를 처리해야합니다. 이것은 기본 컨텍스트 초기화의 필요성 때문입니다. 모든 명령 컨텍스트를 실행하기 전에 초기화되었는지 확인해야합니다. NHibernate에 그러한 가능성이 있습니까?NHibernate OnConnected

P. 이 목적을 위해 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

맞춤 DriverConnectionProvider을 사용할 수 있습니다. 일반적으로이 연결을 동적으로 변경하는 데 사용되지만 시나리오에 적합한 것처럼 보입니다. 커넥션을 생성하고 여는 것은 커넥션을 담당하기 때문에 실행 전에 어떤 조작도 발생하지 않았 음을 보장합니다.

+0

예, 작동합니다. 감사. – Ali

관련 문제