Могу ли я настроить LLBLGen для включения сгенерированного SQL в исключения? - PullRequest
1 голос
/ 24 января 2011

Я использую 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 Ответ

1 голос
/ 25 января 2011

Вы должны получить исключение ORMQueryExecutionException, которое содержит полный запрос в описании.Метод execute запроса оборачивает все исключения в ORMQueryExecutionException и сохраняет запрос в описании.

ps: пожалуйста, если возможно, задавайте вопросы, связанные с llblgen pro, на наших форумах, так как мы не часто отслеживаем переполнение стека.Благодарю.:)

...