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 Framework.

Student Entity:

class Student
{
    public Student()
    {
    }

    public int Student_ID { get; set; }
    public string StudentName { get; set; }
}

The following example automatically creates a stored procedure for Student entity using Fluent API.

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Student>()
        .MapToStoredProcedures();
}

The code shown above will create three procedures Student_Insert, Student_Update and Student_Delete. Student_Insert and Student_Update stored procedures have a parameter name which corresponds to the property names. Student_Delete will have a primary key property StudentID parameter.

You can also change the stored procedure and parameter names, as shown below:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Student>()
        .MapToStoredProcedures(p => p.Insert(sp => sp.HasName("sp_InsertStudent").Parameter(pm => pm.StudentName, "name").Result(rs => rs.Student_ID, "Student_ID"))
        .Update(sp => sp.HasName("sp_UpdateStudent").Parameter(pm => pm.StudentName, "name"))
        .Delete(sp => sp.HasName("sp_DeleteStudent").Parameter(pm => pm.Student_ID, "Id"))
        );
}

If you want all your entities to use stored procedures, then do the following:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Types().Configure(t => t.MapToStoredProcedures());
}

Limitations:

  • Only Fluent API can be used to map stored procedures. You cannot use Data Annotation attributes in EF 6 for stored procedure mapping.
  • You cannot use a mixture of stored procedure and query to add, update and delete operation on the same entity. You can either use stored procedure or SQL query for all add, update and delete operations with the entity.

Download sample project for demo.

Visit codeplex documentation for more information.

时间: 2024-12-28 18:17:46

Entity Framework 6.0 Tutorials(9):Stored Procedure Mapping的相关文章

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(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 s

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(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