Entity Framework 4.0:如何记录 sql 语句

Entity Framework 4.0: How to log sql statements

我在应用程序中使用 Entity Framework 4.0 如何打印 sql 语句的日志。在 EF 6 sampleEntities.Database.Log 中工作如下

readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public sampleEntities()
    : base("name=sampleEntities")
{
    this.Database.Log = s => log.Info("LINQSQLLOG : " + s);
}

您可以按照下图进行。

方法一:

IQueryable myQuery = from x in yourEntities
             where y.id = 45 
             select y;

var sql = ((System.Data.Objects.ObjectQuery)myQuery).ToTraceString();

方法二:

您可以使用 Clutch.Diagnostics.EntityFramework API。它提供了 API 用于跟踪 EntityFramework sql 命令。

努格特:

PM > Install-Package Clutch.Diagnostics.EntityFramework

API 在 Git 上:Clutch API

更新: Logging and Tracing SQL Queries Clutch