Isso é um bug no Profiler ou no Entity Framework?

Isso é um bug no Profiler ou no Entity Framework?

Usando Entity Framework 4 com procedimentos armazenados e SQL Server 2008 SP1... Ao executar o SQL Server Profiler (modelo TSQL_SPs), as linhas que mostram minha chamada de procedimento armazenado e suas instruções dizem que foram executadas em DatabaseID = 1 (Master), mas é realmente acontecendo no banco de dados do meu aplicativo (ID = 8). Os procedimentos são executados corretamente e retornam os dados, e eles só existem no banco de dados do meu aplicativo, então por que o Profiler marca essas linhas como sendo no Master? Isso é um bug no Profiler? É um bug no EF4?

Observe que executando o mesmo código em uma instância do SQL 2000, o Profiler mostra corretamente o ID do banco de dados do aplicativo.

ATUALIZAR: testei isso em uma nova instalação do SQL Server 2008 R2 e ainda exibe isso como se tivesse acontecido no Master.

ATUALIZAÇÃO 2: Isso foi registrado no Connect emhttps://connect.microsoft.com/SQLServer/feedback/details/572246/profiler-reports-ef4-queries-as-occurring-in-master.

Responder1

Aprendi uma solução alternativa comOlaf Tinnemeyer no StackOverflow: Alterando aConjuntos múltiplos de resultados ativosopção na cadeia de conexão paraFALSOfaz com que o Profiler relate corretamente a consulta como sendo executada no banco de dados do aplicativo.

Ainda acho que isso é um bug no SQL 2008, mas posso conviver com a solução alternativa por enquanto.

informação relacionada