我在应用程序中使用 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。它提供了用于跟踪 EntityFramework sql 命令的 API。
Nuget :
PM > Install-Package Clutch.Diagnostics.EntityFramework
Git 上的 API:Clutch API
关于c# - Entity Framework 4.0 : How to log sql statements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40766608/