Hey everyone,
Just a quick post on how to view the generated sql in entity framework. To start with, just add the following line to your db context constructor:
public class TestDbContext : DbContext
{
public TestDbContext() : base("name=TestDbContext")
{
this.Database.Log = s => System.Diagnostics.Debug.WriteLine(s); //This line
}
...
With this line added, you should now be able to see all of your generated sql in the output window.
SELECT TOP (1)
[Project1].[VidId] AS [VidId],
[Project1].[CreatedAt] AS [CreatedAt],
[Project1].[Check] AS [Check],
[Project1].[SourceCheck] AS [SourceCheck]
FROM ( SELECT
[Extent1].[VidId] AS [VidId],
[Extent1].[CreatedAt] AS [CreatedAt],
[Extent1].[Check] AS [Check],
[Extent1].[SourceCheck] AS [SourceCheck]
FROM [dbo].[Vids] AS [Extent1]
WHERE [Extent1].[VidId] < @p__linq__0
) AS [Project1]
ORDER BY [Project1].[VidId] DESC
-- p__linq__0: '535' (Type = Int32)
-- Executing at 28/06/2014 5:00:16 PM +10:00
-- Completed in 0 ms with result: SqlDataReader
If you’re not using EF6, there were a few other options where I came across this solution: http://stackoverflow.com/a/20751723/522859