如何查看 EF 生成的 SQL 语句
本文发布于 7 年前,部分内容可能已经失去参考价值。
EF 提供一个查询 SQL 日志的属性:
DbContext.Database.Log
该属性是一个委托。
最简单的用法是直接输出到控制台:
DbContext.Database.Log = Console.WriteLine;
WebFrom 中可以输出到页面:
DbContext.Database.Log = Response.Write;
该委托可以带一个参数,利用它可以输出简单格式化的日志信息:
DbContext.Database.Log = (sql) =>
{
Console.WriteLine("查询开始");
Console.WriteLine(sql);
Console.WriteLine("查询结束");
};
上面是直接输出到控制台或页面,当然也可以保存到变量:
string s = "";
DbContext.Database.Log = (sql) =>
{
s += sql;
};
当然还有更强大更广泛的使用方式,有兴趣可以参阅 Jeffcky 的文章。
可能相关的内容