When I issue an update query or another Data Manipulation Language (DML) query that changes the data in the database, using Entity Framework 4, how do I see the query sent to the SQL Server?
Let's say I do something like:
someEntityObjectInstance.SomeProperty = newValue;
context.SaveChanges();
In this case, there's no ObjectQuery to do a ToTraceString() against, so I can't really see what's going on under the covers. I believe there's some Microsoft SQL Server tool like the profiler or something that will help me see the query.
Also, some Intellitrace in VS 2010 Ultimate does the same thing, I think?
Can you please teach me how to use the SQL 2005 Profiler, if there's any such thing?
Update
I am looking at a trace in SQL Server 2005 Profiler now but when I issue a context.DeleteObject()
call or when I update an object and call context.SaveChanges()
, I do not see the UPDATE or DELETE queries in the profiler. I only see wierd SELECT queries.
Now, let's run the Application and run the trace in SQL Server Profiler. Click on Get Data button, the data will be populated on the page. Go to SQL Server Profiler and stop the trace, where you will see T-SQL statement of our stored procedure, as shown below. Notice that GetEmployees stored procedure is executed.
There are easier ways, if all you want is see the sql queries as they hit the DB.
Here are two very light-weight Sql profilers that can do the job for various SqlServer flavors, including LocalDb - "worked on my machine (TM)"
By far the easiest to use one (and also the most bare-bones-show-me-the-SQL-statements-kthxbye) is ExpressProfiler on CodePlex.
Download tiny ZIP, wonder if you really got the whole file (you did), run EXE inside, BAM!
And the whole program is a single 126 KB EXE ! Now that's lightweight!
The other one is the one from DataWizard, which used to be free (apparently prices now start at $5).
Somebody managed to save a snapshot on GitHub (including xcopy-installable binaries) when it was open-source.
The executable presents itself as "AnjLab Sql Profiler" and allows some filtering of the displayed events - but this strength is also its weakness, as there are sooo many event types that can be enabled/disabled. If everything is selected, the output is overwhelmingly verbose.
A saner output can be obtain by only selecting specific events.
Here are the events I have selected in order to get the above output:
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