一、Entity Framework Code first(代码优先)使用过程

  1.1Entity Framework 代码优先简介

    不得不提Entity Framework Code First这个介于牛A与牛C之间的功能,从4.1 开始的Code first使程序员,使软件开发流程进入一个更加方便快捷的时代。

    Code First是EntityFramework实现ORM的一种有利手段,因为传统编程方式都是先建立数据库,然后根据数据库模型为应用程序建模,再进行开发;CodeFirst代码优先,先在程序中建立要映射到数据库的实体结构,然后EntityFramework可以根据实体结构生成所对应的数据库。

   1.2 最新版本简介(Entity Framework 5,现在VS2012中已出现EF6.0.0beta1版本了)

    
    1.2.1 枚举支持是EF 久等的功能,并让您在您的域类中拥有枚举属性。EF5 让枚举支持在 EF 设计器和Code First中是可用的。
    1.2.2 现在,现有数据库中的表值函数可以包含在使用 EF 设计器所创建的模型中。
    1.2.3 可以使用DbGeography 和 DbGeometry 类型在模型中公开空间数据类型。空间数据可以包含在由EF 设计器或Code First所创建的模型中。
    1.2.4 EF5 还包括一些重大的性能改进,Entity Framework 5相比EF4在性能上会有67%的提升 。使用这个版本EF的应用程序之所以性能提升,要部分归功于LINQ to Entities查询的自动编译。自动编译功能一直都是EF框架中的一部分,只是需要开发人员调用CompiledQuery.Compile才能够使用。现在,EF 5会自动处理这步工作:当某个查询首次运行时,它会被编译并缓存,从而使得后续请求可以避免重新完全编译。EF 4为ESQL(嵌入式SQL)查询使用了编译后的查询缓存,而EF 5将该功能扩展到了LINQ to Entity查询中。一旦缓冲中超过800个编译后的查询,某个回收算法将开始生效并以每分钟一次的周期清理缓存。 实体依据LFRU(最近最早使用)原理从缓存中移除。

  1.3 Visual Studio 2012中的EF设计器,它也有一些新的功能:

    1.3.1 现在模型可以被分为多个关系图,在使用大型的模型时,这是很不错的。您还可以应用着色到实体中来帮助您识别您的模型的分区。
    1.3.2 改进了转置模型的向导,使其更容易和更快地为查询数据批量导入存储过程。

  1.4 参考文章、博文
    http://msdn.microsoft.com/zh-cn/magazine/jj991973.aspx
    
http://msdn.microsoft.com/zh-cn/magazine/hh547106.aspx
    http://blogs.msdn.com/b/jason_zander/archive/2012/07/30/entity-framework-code-first-asp-net-web-api.aspx
    http://msdn.microsoft.com/zh-cn/magazine/hh126815.aspx

二、 Code First New Database使用

    2.1 创建控制台项目

    2.2 添加引用最新的Entity Framework

      项目上右键单击—》管理NeGut程序包—》联机,找到EntityFramework—》安装
      安装之后即可看到packages.config

    2.3 建立实体类

 1     public class Blog
 2     {
 3         public int BlogId { get; set; }
 4         public string Name { get; set; }
 5 
 6         public virtual List<Post> Posts { get; set; }
 7     }
 8     public class Post
 9     {
10         public int PostId { set; get; }
11         public string Title { get; set; }
12         public string Content { get; set; }
13 
14         public int BlogId { set; get; }
15         public virtual Blog Blog { get; set; }
16     }
View Code

相关文章:

  • 2022-12-23
  • 2022-02-02
  • 2022-12-23
  • 2021-07-21
  • 2021-07-24
  • 2021-12-26
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-31
  • 2022-12-23
  • 2021-04-22
  • 2022-12-23
  • 2021-12-19
  • 2021-12-03
相关资源
相似解决方案