2016-11-23 142 views
3

我使用實體框架4.0的應用程序如何打印SQL語句。在EF 6 sampleEntities.Database.Log的日誌工作如下實體框架4.0:如何

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); 
      } 

回答

1

您可以登錄SQL staments如下所示。

方法1:

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

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

方法2:

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

的NuGet:對Git的

PM > Install-Package Clutch.Diagnostics.EntityFramework 

API:Clutch API

更新:Logging and Tracing SQL Queries Clutch

+0

感謝重播我會嘗試第二次。就是它posssible記錄所有SQL staments離合器.Diagnostics.EntityFramework,因爲有些結果如下所示var Reminder = context.Reminders.ToList(); ? – user202

+0

是的,你也可以看到**更新**。 – Sampath