【问题标题】:Entity Framework 4.0: How to log sql statementsEntity Framework 4.0:如何记录 sql 语句
【发布时间】:2017-04-07 14:08:29
【问题描述】:

我在应用程序中使用 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);
}

【问题讨论】:

    标签: c# entity-framework entity-framework-4 log4net


    【解决方案1】:

    如下图所示。

    方法一:

    IQueryable myQuery = from x in yourEntities
                 where y.id = 45 
                 select y;
    
    var sql = ((System.Data.Objects.ObjectQuery)myQuery).ToTraceString();
    

    方法二:

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

    Nuget:

    PM > Install-Package Clutch.Diagnostics.EntityFramework
    

    Git 上的 API:Clutch API

    更新: Logging and Tracing SQL Queries Clutch

    【讨论】:

    • 感谢重播,我将尝试第二个。是否可以记录所有 sql 语句 Clutch.Diagnostics.EntityFramework 因为一些结果如下所示 var Reminder= context.Reminders.ToList(); ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    相关资源
    最近更新 更多