Почему SQL 2008 Profiler указывает, что хранимая процедура, запущенная из EF4, находится в мастере?

Использование Entity Framework 4 с хранимыми процедурами и SQL Server 2008 SP1... При запуске SQL Server Profiler (шаблон TSQL_SPs) в строках, показывающих мой вызов хранимой процедуры и ее операторы, говорится, что это произошло в DatabaseID = 1 (Master), но это на самом деле происходит в моей базе данных приложений. Процедуры выполняются правильно и возвращают данные, и они существуют только в базе данных моего приложения, так почему же Profiler помечает эти строки как находящиеся в Master? Это ошибка профайлера?

Обратите внимание, что при выполнении того же кода для экземпляра SQL 2000 Profiler правильно показывает идентификатор базы данных приложения.

ОБНОВЛЕНИЕ. Сейчас я протестировал это на новой установке SQL Server 2008 R2, и оно по-прежнему отображает это так, как если бы это произошло в Master.

ОБНОВЛЕНИЕ 2: это было зарегистрировано в Connect по адресу https://connect.microsoft.com/SQLServer/feedback/details/572246/profiler-reports.-ef4-queries-as-occurring-in-master.


person AjarnMark    schedule 04.06.2010    source источник


Ответы (1)


Содержит в своей строке подключения параметр «MultipleActiveResultSets=True»? Если да, попробуйте удалить его и посмотреть в sql profiler.

person Olaf Tinnemeyer    schedule 04.08.2010
comment
Да, обходной путь изменения параметра MultipleActiveResultSets в строке подключения со значения по умолчанию True на False заставляет Profiler правильно сообщать о выполнении запроса в базе данных приложения. Звучит как ошибка для меня, но я могу жить с этим обходным путем. СПАСИБО!!! - person AjarnMark; 10.08.2010