使用指南
here,我正在尝试记录我的MVC Web应用程序生成的sql.
该指南使用该行:
context.Database.Log = Console.Write;
这显然不适用于Web应用程序.该指南描述了Log属性:
The DbContext.Database.Log property can be set to a delegate for any
method that takes a string.
而这就是我不明白,代表们只是让我困惑.我该如何使用这个EF6功能?
解决方法
使用委托允许您编写任何带字符串的函数.作为一个非常简单的文件记录,您可以执行以下操作:
context.Database.Log = message => File.AppendText("C:\\mylog.txt").WriteLine(message);
在Web环境中,您可能希望使用Trace来记录此信息:
context.Database.Log = message => Trace.WriteLine(message);
您可以在MSDN page on Anonymous Functions上查看更多使用委托的示例.