Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何全局执行EF日志sql查询?_Entity Framework_Logging_Ef Code First - Fatal编程技术网

Entity framework 如何全局执行EF日志sql查询?

Entity framework 如何全局执行EF日志sql查询?,entity-framework,logging,ef-code-first,Entity Framework,Logging,Ef Code First,如何“告诉”EF全局记录查询?我在读这篇博文:它告诉我们如何记录sql查询。但是我仍然有一些关于这个记录器的问题 我需要在哪里放置此行context.Database.Log=s=> logger.Log(“EFApp”,s) 它可以全局设置吗?还是我必须把它放在我所做的任何地方 手术 在“执行失败”部分,博主写道,我 引述: 对于因引发异常而失败的命令,输出包含来自异常的消息 如果我不使用context.Database.Log,这也会被记录吗 每当您希望上下文开始记录时 它似乎是在上下文对

如何“告诉”
EF
全局记录查询?我在读这篇博文:它告诉我们如何记录
sql
查询。但是我仍然有一些关于这个记录器的问题

  • 我需要在哪里放置此行
    context.Database.Log=s=>
    logger.Log(“EFApp”,s)
  • 它可以全局设置吗?还是我必须把它放在我所做的任何地方 手术
  • 在“执行失败”部分,博主写道,我 引述:

    对于因引发异常而失败的命令,输出包含来自异常的消息

  • 如果我不使用
    context.Database.Log
    ,这也会被记录吗

  • 每当您希望上下文开始记录时
  • 它似乎是在上下文对象上完成的,因此每次创建新上下文时都应该完成。不过,您可以在构造函数中添加这行代码,以确保它始终处于启用状态
  • 如果不启用日志记录,它将不会记录

  • 我不建议使用这种功能,因为它没有理由存在于实际情况中。 也就是说,只调试代码需要大量的时间。但是,你是否想知道更多的细节。。。访问链接。。。 在这种情况下,您可以这样放置代码

      public void Mylog()
        {
            //Thats a delegate where you can set this property to log using 
            //delegate type Action, see the code below
    
            context.Database.Log = k=>Console.Write("Any query SQL")
            //Or
            context.Database.Log = k=>Test("Any query SQL")
    
        }
    
        public void Test(string x){
    
            Console.Write(x)
        }
    
    我希望那是有用的