In EF 4.1 DbContext, wie generiertes SQL verfolgt werden kann
Frage ich mich, wie trace generierten SQL wie DataContext in LinqToSql.
Lese ich auch Artikel über die Lösung von EFProviderWrapper auf Jaroslaw Kowalski ' s blog, aber es basiert auf ObjectContext, funktioniert nicht DbContext.
Jemand weiß, wie man diese in DbContext?
Danke.
InformationsquelleAutor der Frage Chance | 2011-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Weg, mit
DbContext
undDbSet<T>
ist nur zu verwendenToString()
auf dieIQueryable
Sie gebaut haben. Zum Beispiel:sql
enthält den SQL-Befehl ausgegeben werden, um die DB, wenn die Abfrage ausgeführt wird.InformationsquelleAutor der Antwort Slauma
Dem MVC-Mini-Profiler ist ein pwerful tool, nicht ony generierten sql-trace, aber auch profiling-tool.
Mithilfe von mvc-mini-profiler-Datenbank-profiling mit Entity Framework Code First
InformationsquelleAutor der Antwort Chance
Verwende ich den SQL Server profiler-tool, um zu sehen, genau das, was SQL erstellt wurde. Es ist auch http://efprof.com/ aber es ist ein ziemlich hoher Preis.
InformationsquelleAutor der Antwort JK.
Können Sie die ObjectQuery.ToTraceString Methode, um anzuzeigen store-Befehle (SQL-Anweisungen, zum Beispiel). Die Wie auf der MSDN-Website wird Ihnen zeigen, wie es verwendet werden kann.
Beachten Sie, dass in vielen Fällen, werden Sie in der Lage zu werfen eine IQueryable (der Rückgabetyp von Linq-extension-Methoden wie IQueryable.Wo) ein ObjectQuery, so dass Sie Zugriff auf die ToTraceString Methode.
InformationsquelleAutor der Antwort Scott Munro
Fand ich diese EFTracingProvider Erweiterung für die ObjectContext-hier:
http://efwrappers.codeplex.com/
Aber das Beispiel ist für ObjectContext nicht DbContext, um es an die Arbeit mit DbContext
tun Sie Folgendes in den Konstruktor:
Oh und denken Sie daran, die Konfiguration festgelegt:
Dass dann Spuren alle SQL-Direktfenster.
InformationsquelleAutor der Antwort James Close
Für alle, die nicht wollen, ziehen in eine Drittanbieter-Bibliothek, und ist einfach auf der Suche für die SQL mit den Parametern (und nicht verärgert durch alle Reflexion), diese Erweiterung Methode packt die InternalQuery Objekt und die ObjectQuery-Objekt aus dem DbQuery und gibt die ToTraceString nach der Realisierung der Parameter wieder in den string. Wenn es nicht gelingt, es wieder die parameterlose ToString aus der IQueryable:
InformationsquelleAutor der Antwort kmk
Ausführung von code, und führen Sie dann diese Abfrage zu sehen, die Letzte SQL ausgeführt.
InformationsquelleAutor der Antwort Arturo Hernandez
Dies ist eine leichte Verbesserung über die Lösung (von @kmk), durch die Parameter mit Werten. Diese Lösung erklärt und weist die Parameter statt:
InformationsquelleAutor der Antwort David Airapetyan