Entity Framework 6.0 Tutorials(4):Database Command Logging

Database Command Logging:

In this section, you will learn how to log commands & queries sent to the database by Entity Framework.

Prior to EF 6, we used the database tracing tool or third party tracing utility to trace database queries and commands sent by Entity Framework. Now, EF 6 provides a simple mechanism to log everything that Entity Framework is doing. It logs all the activity performed by EF using context.database.Log

You can attach any method of any class, which accepts one string parameter and returns void.

In the following example, we use Console.Write method to log EF activities:

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();
}

Output:

You can see in the output that it logs all the activities performed by EF, e.g. opening & closing connection, execution & completion time and database queries & commands.

Context.Database.Log is an Action<string> so that you can attach any method which has one string parameter and void return type. For example:

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();
            }
        }
}

Download DB First sample project for DB command logging demo.

时间: 2024-10-17 16:48:03

Entity Framework 6.0 Tutorials(4):Database Command Logging的相关文章

Entity Framework 6.0 Tutorials(1):Introduction

以下系统文章为EF6.0知识的介绍,本章是第一篇 原文地址:http://www.entityframeworktutorial.net/entityframework6/introduction.aspx ------------------------------------------------------------------------------------------------------------- Entity Framework 6.0 Introduction: W

Entity Framework 6.0 Tutorials(2):Async query and Save

Async query and Save: You can take advantage of asynchronous execution of .Net 4.5 with Entity Framework. EF 6 has the ability to execute a query and command asynchronously using DbContext. Let's see how to execute asynchronous query first and then w

Entity Framework 6.0 Tutorials(6):Transaction support

Transaction support: Entity Framework by default wraps Insert, Update or Delete operation in a transaction, whenever you execute SaveChanges(). EF starts a new transaction for each operation and completes the transaction when the operation finishes.

Entity Framework 6.0 Tutorials(10):Index Attribute

Index Attribute: Entity Framework 6 provides Index attribute to create Index on a particular column in the database as shown below: class Student { public Student() { } public int Student_ID { get; set; } public string StudentName { get; set; } [Inde

Entity Framework 6.0 Tutorials(3):Code-based Configuration

Code-based Configuration: Entity Framework 6 has introduced code based configuration. Now, you can configure Entity Framework related settings using the code which had been previously configured in the <entityframework> section of the app.config. Ho

Entity Framework 6.0 Tutorials(9):Stored Procedure Mapping

Code First - Insert, Update, Delete Stored Procedure Mapping: Entity Framework 6 Code-First provides the ability to create and use a stored procedure for add, update, and delete operations. This was not possible in the previous versions of Entity Fra

Entity Framework 6.0 Tutorials(11):Download Sample Project

Download Sample Project: Download a sample project for Entity Framework 6 Database-First model below. Download a sample project for Entity Framework 6 CodeFirst-First below.  These sample projects already include the SchoolDB.mdf file required for th

Entity Framework 6.0 Tutorials(8):Custom Code-First Conventions

Custom Code-First Conventions: Code-First has a set of default behaviors for the models that are referred to as conventions. EF 6 provides the ability to define your own custom conventions which will be the default behavior for your models. There are

Entity Framework 6.0 Tutorials(5):Command Interception

Interception: Here, you will learn how to intercept EF when it executes database commands. EF 6 provides the ability to intercept the context using IDbCommandInterceptor before and after it performs the ExecuteNonQuery, ExecuteScalar, ExecuteReader o