猿教程 Logo

Database Command Logging:

阿里云服务器,每月低至7.8元,项目演示即建站必备,比腾讯云更便宜,并且不需学生认证,从此链接购买有效:去购买

在本节中,您将了解如何记录和查询Entity Framework发送到数据库的命令。

在EF 6之前,我们使用数据库跟踪工具或第三方跟踪实用程序跟踪Entity Framework发送的数据库查询和命令。 现在,EF 6提供了一个简单的机制来记录Entity Framework所做的一切。 它使用context.database.Log记录EF执行的所有活动

您可以附加任何类的任何方法,它接受一个字符串参数并返回void。

在下面的例子中,我们使用Console.Write方法来记录EF活动:

using (var context = new SchoolDBEntities())
{
    context.Database.Log = Console.Write;
    var student = context.Students
                        .Where(s => s.StudentName == "Student1").FirstOrDefault<Student>();
    student.StudentName = "Edited Name";
    context.SaveChanges();
}

输出:


您可以在输出中看到它记录了由EF执行的所有活动,例如。 开启和关闭连接,执行和完成时间以及数据库查询和命令。

Context.Database.Log是一个Action <string>,以便您可以附加任何具有一个字符串参数和void返回类型的方法。 例如:

public class Logger
    {
        public static void Log(string message)
        {
            Console.WriteLine("EF Message: {0} ", message);
        }
    }
class EF6Demo
    {
    
        public static void DBCommandLogging()
        {
            using (var context = new SchoolDBEntities())
            {
                
                context.Database.Log =  Logger.Log;                
                var student = context.Students
                                .Where(s => s.StudentName == "Student1").FirstOrDefault<Student>();
                student.StudentName = "Edited Name";
                context.SaveChanges();
            }
        }
}
阿里云服务器,每月低至7.8元,项目演示即建站必备,比腾讯云更便宜,并且不需学生认证,从此链接购买有效: 去购买


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/entity/database-command-logging.html