如何查看实体框架生成的SQL?
我如何查看由实体框架生成的SQL?
(在我的具体情况下,我使用mysql提供程序 - 如果它很重要)
您可以执行以下操作:
IQueryable query = from x in appEntities
where x.id = 32
select x;
var sql = ((System.Data.Objects.ObjectQuery)query).ToTraceString();
或在EF6中:
var sql = ((System.Data.Entity.Core.Objects.ObjectQuery)query)
.ToTraceString();
这会给你生成的SQL。
对于那些使用Entity Framework 6或更高版本的用户,如果你想在Visual Studio中查看输出SQL(就像我一样),你必须使用新的日志/拦截功能。
添加以下行将在Visual Studio输出面板中吐出生成的SQL(以及其他与执行相关的详细信息):
using (MyDatabaseEntities context = new MyDatabaseEntities())
{
context.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
// query the database using EF here.
}
有关在这个漂亮的博客系列中登录EF6的更多信息:http://blog.oneunicorn.com/2013/05/08/ef6-sql-logging-part-1-simple-logging/
注意:确保你在DEBUG模式下运行你的项目。
如果您使用的是DbContext,则可以执行以下操作来获取SQL:
var result = from i in myContext.appEntities
select new Model
{
field = i.stuff,
};
var sql = result.ToString();
链接地址: http://www.djcxy.com/p/29233.html
上一篇: How do I view the SQL generated by the Entity Framework?