2011-01-24 51 views
1

我使用LLBLGEN和我有一些代码,就像这样:我可以配置LLBLGen在异常中包含生成的SQL吗?

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。我知道我可以配置日志记录,但我更愿意直接在我的堆栈跟踪/异常中存储信息,以便当发生这些类型的错误时,我现有的异常日志记录基础结构可以为我提供更多信息。

谢谢! 史蒂夫

回答

1

你应该得到一个ORMQueryExecutionException,其中包含描述中的完整的查询。查询的execute方法将所有异常包装在ORMQueryExecutionException中,并将查询存储在描述中。

PS:请,如果可能的话请在我们的论坛LLBLGEN职业相关的问题,因为我们不经常计算器监控。谢谢。 :)

+0

谢谢,我想我现在的任务就是试图得到ELMAH做一些与说明,否则做一些自定义的异常处理是指它。 – ssmith 2011-01-26 21:45:39

相关问题