如何在ObjectContext中记录所有SQL语句

时间:2015-01-14 21:04:16

标签: c# .net winforms

我需要记录完成的所有SQL语句。我正在使用EF5,这是我的上下文构造函数

public partial class Entities : ObjectContext
{
    public const string ConnectionString = "name=Entities";
    public const string ContainerName = "Entities";

    #region Constructors

    public Entities()
        : base(ConnectionString, ContainerName)
    {
        this.ContextOptions.LazyLoadingEnabled = true;
    }

更新

这对我来说很好:http://efwrappers.codeplex.com/

2 个答案:

答案 0 :(得分:3)

类似的东西:

context.Database.Log = Console.Write; 

了解更多信息:

http://msdn.microsoft.com/en-us/data/dn469464.aspx

答案 1 :(得分:0)

对于那些此时到达这里的人。现在,您可以通过在配置中配置拦截器来轻松记录EF查询:

<interceptors>
  <interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework">
    <parameters>
      <parameter value="C:\Temp\LogOutput.txt"/>
    </parameters>
  </interceptor>
</interceptors>

https://docs.microsoft.com/en-us/ef/ef6/fundamentals/configuring/config-file