如何使用Entity Framework SQL Debug功能?

时间:2017-01-25 01:52:35

标签: c# entity-framework

我正在尝试使用Entity Framework SQL Debug Feature,但是我遇到了以下错误,如何修复它?

代码: -

DbContext.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);

错误: -

An object reference is required for the non-static field ,method or property 'System.Data.Entity.DbContext.Database.get'

1 个答案:

答案 0 :(得分:1)

您使用的是DbContext类型,您应该使用该类型的实例。例如,在配置DbContext的地方,尝试调用这样的方法:

dbContext.Database.Log = s => Debug.WriteLine(s);

dbContext变量替换为您的变量名称。

修改

您的上下文定义应如下所示:

public class MyDbContext: DbContext //IdentityDbContext 
{
     public MyDbContext() : base("name=ConnectionStringNameFrom .config")
     {
          Database.Log = e => Debug.WriteLine(e); 
          //or you can define it like this: Database.Log = Console.WriteLine; 
     }
     //{...} your DbSets properties

     //protected override void OnModelCreating(DbModelBuilder modelBuilder)
     //{
     // {...}
     //}
}

现在,如果您使用此db上下文示例,则在调试应用程序时,您应该在输出窗口中看到EF执行的查询。