猿教程 Logo

Code First - Insert, Update, Delete

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

Entity Framework 6 Code-First提供了为添加,更新和删除操作创建和使用存储过程的能力。 这在以前的Entity Framework版本中是不可能的。

学生实体:

class Student
{
    public Student()
    {
    }
    public int Student_ID { get; set; }
    public string StudentName { get; set; }
}

以下示例使用Fluent API自动为学生实体创建存储过程。

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

上面显示的代码将创建三个过程Student_Insert,Student_Update和Student_Delete。 Student_Insert和Student_Update存储过程具有与属性名称对应的参数名称。 Student_Delete将具有主键属性StudentID参数。

您还可以更改存储过程和参数名称,如下所示:

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

如果希望所有实体使用存储过程,请执行以下操作:

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

限制:

  • 只有Fluent API可以用于映射存储过程。 您不能在EF 6中使用数据注释属性来存储过程映射。

  • 您不能使用存储过程和查询的混合来在同一实体上添加,更新和删除操作。 您可以使用存储过程或SQL查询为实体的所有添加,更新和删除操作。

有关详细信息,请访问codeplex文档。

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


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