I'm using Entity Framework Code First and I'd like to be able to record all the SQL queries generated by the DbContext. In Linq to sql there was a DB log and I can't seem to find it in EF. I could then drop them in a log or output it to the page.
I'm using the version 4.1.0.0 of the EntityFramework Assembly.
Open SQL Server Profiler Just search for the tool on your computer where SQL server is running. It should automatically come with the installation. Once that is open you click 'file/new trace' and connect to the database similar to when opening SQL server management studio.
The FROM clause, and subsequent JOIN s are first executed to determine the total working set of data that is being queried.
Visual Studio Output You can set the logging level for Microsoft to “Information”. Then you can view the SQL in the output log when running in debug mode from Visual Studio. The SQL will then be visible in the Output panel.
Your best bet would be to use the Entity Framework Profiler, although it's unfortunately not free.
You can also manually get the SQL it will generate by running a ToString()
on the IQueryable
itself, but that will have to be done on a per-query basis.
One final option is that if you are using MS Sql Server as your backend, you can load up the Sql Server Profiler (that comes with Sql Server Management Studio I believe) and log the sql statements from there.
Miniprofiler a free alternative to entity framework profiler that will allow you to trace all sql queries made during web requests
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With