Профилирование соединения DB2 с MiniProfier

Я пытаюсь добавить MiniProfiler в мои соединения с DB2. Ниже мой упрощенный код.

public void InitializeConnection()
{
    DB2Connection cnn = new DB2Connection("connection String");
    var profiler = 
         new StackExchange.Profiling.Data.ProfiledDbConnection(cnn, MiniProfiler.Current);
    IDbCommand c = new DB2Command();
    c.Connection = profiler ;
}

Моя проблема возникает в последней строке, где профилировщик назначен свойству соединения DB2Command. Я получаю ошибку ниже.

Невозможно привести объект типа "StackExchange.Profiling.Data.ProfiledDbConnection" к типу "IBM.Data.DB2.DB2Connection". Я попробовал несколько различных идей преобразования, но ничего не получилось.

2 ответа

Решение

Я думаю, что вы идете в обратном направлении. Вы назначаете соединение ProfiledDbConnection класс (как кажется, основанный на документации на сайте MiniProfiler).

Однако затем вы создаете объект команды, специфичный для DB2, и пытаетесь назначить ProfiledDbConnection класс для объекта подключения.

Я думаю, что вы хотите сделать, это позвонить profiler.CreateDbCommand(), который создаст ProfiledDbCommand объект, который использует класс DB2Command "под одеялом".

DB2Command.Connection свойство имеет тип DB2Connection (как подсказывает вам сообщение об ошибке). Пытаться DbConnection вместо:

c.DbConnection = profiler

Больше в руководстве

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