我可以将LLBLGen配置为在异常中包含生成的SQL吗?

时间:2011-01-24 19:14:01

标签: llblgenpro llblgen

我正在使用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这样的属性。我知道我可以配置日志记录,但我更希望将信息直接放在我的堆栈跟踪/异常中,这样我现有的异常日志记录基础结构可以在发生这些错误时为我提供更多信息。

谢谢! 史蒂夫

1 个答案:

答案 0 :(得分:1)

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

ps:请尽可能在我们的论坛上询问llblgen pro相关问题,因为我们不经常监视stackoverflow。谢谢。 :)