1

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

谢谢!史蒂夫

4

1 回答 1

1

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

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

于 2011-01-25T07:42:00.827 回答