Могу ли я настроить 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, на наших форумах, так как мы не часто отслеживаем стекопоток Благодарю.:)