EF6存储过程映射与配置详解.pdfVIP

  • 0
  • 0
  • 约2.88万字
  • 约 24页
  • 2025-12-23 发布于北京
  • 举报

默认情况下,CodeFirst对实体进行、更新、删除操作是直接在表上进行的,从EF6开始你可以选择使用存

储过程(StoredProcedures)

简单实体映射基本实体映射

注意:本文将使用FluentAPI来配置使用过程

publicclass博客

{

公共整数博客标识{获取;设置;}

publicstring名称{get;set;}

公共字符串Url{获取;设置;}

[Timestamp]

公共字节[]时间戳{获取;设置;}

publicvirtualICollectionPostPosts{get;set;}

}

modelBuilder.Entity博客()

.MapToStoredProcedures();

上面的代码执行后,CodeFirst将根据一些约定在数据库中生成相应的过程:

•生成三个过程,名称分别为type_name_Insert、type_name_Update、type_name

_Delete(本例为Blog_Insert、Blog_Update、Blog_Delete);

•参数名对应于属性名(注意:如果在属性上使用HasColumnName()或Column特性进行重命名,那么参数也将

使用这个重命名后的名称);

•Theinsertstoredprocedure为每一个属有一个参数,除了那些标记为数据库产生的(identityor

computed),返回结果为那些标记为数据库产生的属性列;

•更新过程每个属有一个参数,除了那些标记为数据库生成且模式为computed的属性。一些带有

并发标记的属性需要一原始值的参数(信息请参考并发标记章节)。返回值为那些computed

property的列;

•删除过程的参数为主键(或者组合主键),此外也需要为每一个独立关联的外键准备一个参数(指那些没有在

实体上定义相应外键属性的关系),一些并发标记需要一原始值的参数(信息请参考ConcurrencyTokens

section)

默认情况下,CodeFirst对实体进行、更新、删除操作是直接在表上进行的,从EF6开始你可以选择使用

过程(StoredProcedures)

简单实体映射BasicEntityMapping

注意:本文将使用FluentAPI来配置使用过程

publicclassBlog

{

publicintBlogId{get;set;}

publicstringName{get;set;}

publicstringUrl{get;set;}

[Timestamp]

publicbyte[]Timestamp{get;set;}

publicvirtualICollectionPostPosts{get;set;}

}

modelBuilder.EntityBlog()

.MapToStoredProcedures();

上面的代码执行后,CodeFirst将利用某些约定在数据库中生成一些过程:

•生成三个存储过程,名称分

文档评论(0)

1亿VIP精品文档

相关文档