Могу ли я настроить 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);
    }

В настоящее время я получаю SqlException в строке FetchEntityCollection. Ошибка: System.Data.SqlClient.SqlException: неверный поток протокола RPC для входящего потока табличных данных (TDS). Слишком много параметров было предоставлено в этом запросе 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 pro, на наших форумах, так как мы не часто отслеживаем стекопоток Благодарю.:)

Другие вопросы по тегам