如何查看 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 的文章

xoyozo 7 年前
转载请注明出处
可能相关的内容