2011-01-24 2 views
1

내가 LLBLGen를 사용하고 있는데 나는 몇 가지 코드과 같이 있습니다예외에서 생성 된 SQL을 포함하도록 LLBLGen을 구성 할 수 있습니까?

if (onlyRecentMessages) 
    { 
     messageBucket.PredicateExpression.Add(MessageFields.DateEffective >= DateTime.Today.AddDays(-30)); 
    } 

    var messageEntities = new EntityCollection<MessageEntity>(); 
    using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) 
    { 
     myAdapter.FetchEntityCollection(messageEntities, messageBucket); 
    } 

내가 현재 FetchEntityCollection 라인에 SQLEXCEPTION을 얻고있다. 오류 : System.Data.SqlClient.SqlException : 들어오는 테이블 형식의 데이터 스트림 (TDS) 원격 프로 시저 호출 (RPC) 프로토콜 스트림이 올바르지 않습니다. 이 RPC 요청에 너무 많은 매개 변수가 제공되었습니다. 최대 값은 2100입니다.

하지만 그건 부차 메모입니다. 내가 실제로 할 수 있기를 원하는 것은 내 코드의 커스텀 예외에 생성 된 SQL을 포함시키는 것이다. 이 같은 인스턴스 뭔가 그래서 : 물론

using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) 
     { 
      try 
      { 
       myAdapter.FetchEntityCollection(messageEntities, messageBucket); 
      } 
      catch (SqlException ex) 
      { 
       throw new CustomSqlException(ex, myAdapter.GeneratedSqlFromLastOperation); 
      } 
     } 

, GeneratedSqlFromLastOperation 같은 그러한 속성이 존재하지 않는다. 로깅을 구성 할 수 있다는 것을 알고 있지만, 스택 추적/예외에 직접 정보를 가지고 있기 때문에 이러한 예외가 발생하면 기존의 예외 로깅 인프라가 더 많은 정보를 제공 할 수 있습니다.

감사합니다. Steve

답변

1

설명에 전체 쿼리가 포함 된 ORMQueryExecutionException을 가져와야합니다. 쿼리의 execute 메서드는 모든 예외를 ORMQueryExecutionException에 래핑하고 쿼리를 설명에 저장합니다.

ps : 가능하면 stackoverflow를 자주 모니터링하지 않으므로 포럼에 llblgen 전문가 관련 질문을하십시오. 감사. :)

+0

감사합니다. 이제 내 작업은 ELMAH에서 해당 설명을 사용하여 작업을 수행하거나 다른 예외 처리를 수행하는 것입니다. – ssmith

+0

아, 그리고 llblgen.com/tinyforum 검색을 끝내지 만 솔직히 질문을하기에 더 좋은 인터페이스가 될 수 있으며 한 번 더 로그인 할 필요가 없습니다. – ssmith

관련 문제