我正在使用Entity Framework Code First,并希望能够记录DbContext生成的所有SQL查询。在Linq to sql中,有一个DB日志,但在EF中似乎找不到它。然后我可以将它们放入日志或输出到页面。
我正在使用EntityFramework Assembly的4.1.0.0版本。
我正在使用Entity Framework Code First,并希望能够记录DbContext生成的所有SQL查询。在Linq to sql中,有一个DB日志,但在EF中似乎找不到它。然后我可以将它们放入日志或输出到页面。
我正在使用EntityFramework Assembly的4.1.0.0版本。
IQueryable
本身上运行ToString()
,但这必须针对每个查询进行。最后一个选择是,如果您正在使用MS Sql Server作为后端,则可以加载Sql Server Profiler(我相信它随Sql Server Management Studio一起提供),并从那里记录sql语句。我就放在这里了。
public class Context : DbContext
{
public Context(string connectionString) : base(connectionString)
{ Database.Log = Console.Write; }
}
随着EF等工具的出现,使用SQL Server Profiler变得比以往任何时候都更为重要。在这种情况下,SQL Server Profiler应该成为首选工具。如果在我们实际编写查询时它已经很重要了,那么现在这些工具为我们构建查询,使用它就更加必要了。不仅对于调试,还对于优化来说。