Handelt es sich hierbei um einen Fehler im Profiler oder im Entity Framework?

Handelt es sich hierbei um einen Fehler im Profiler oder im Entity Framework?

Entity Framework 4 mit gespeicherten Prozeduren und SQL Server 2008 SP1 verwenden ... Beim Ausführen von SQL Server Profiler (Vorlage TSQL_SPs) geben die Zeilen, die meinen gespeicherten Prozeduraufruf und seine Anweisungen anzeigen, an, dass sie in DatabaseID = 1 (Master) ausgeführt wurden, aber tatsächlich geschieht dies in meiner Anwendungsdatenbank (ID = 8). Die Prozeduren werden ordnungsgemäß ausgeführt und geben die Daten zurück, und sie existieren nur in meiner Anwendungsdatenbank. Warum also markiert Profiler diese Zeilen als in Master befindlich? Ist das ein Fehler in Profiler? Ist das ein Fehler in EF4?

Beachten Sie, dass beim Ausführen desselben Codes für eine SQL 2000-Instanz der Profiler die Datenbank-ID der Anwendung korrekt anzeigt.

AKTUALISIEREN: Ich habe dies jetzt auf einer Neuinstallation von SQL Server 2008 R2 getestet und es wird immer noch so angezeigt, als ob es im Master passiert wäre.

AKTUALISIERUNG 2: Dies wurde bei Connect protokolliert unterhttps://connect.microsoft.com/SQLServer/feedback/details/572246/profiler-reports-ef4-queries-as-occurring-in-master.

Antwort1

Habe einen Workaround gelernt vonOlaf Tinnemeyer auf StackOverflow: WechselnMehrere aktive Ergebnismengenin der Verbindungszeichenfolge aufFALSCHbewirkt, dass Profiler die Abfrage ordnungsgemäß als in der Anwendungsdatenbank ausgeführt meldet.

Ich bin immer noch der Meinung, dass es sich hierbei um einen Fehler in SQL 2008 handelt, kann mit der Problemumgehung vorerst aber leben.

verwandte Informationen