未经授权,不得转载
微软概念数据获取技术,ADO.NET Entity Framework作为.net框架的一部分已经有2个主要的发布版,.net3.5带给我们Entity framework的第一个版本在《Entity framework编程》的第一版中已有说明。在2010年,随着微软.net 4的发布,Entity framework对应的下一个版本也包含其中。在《Entity framework编程》的第二版中也有说明如何教会读者去使用Entity framework。
当.net 4.0发布之后,微软的Entity framework团队在新的功能上做了很多辛苦的工作,该功能称之为Code first。该功能作为新一代的Entity framework的核心内容带给用户另外一种方式去构建实体数据模型(Entity Data Model)。与通过设计器创建不同的是,该功能允许用户通过已经存在的类创建模型。
本书专注如何在业务逻辑域中教用户如何创建和配置模型,当Code First能够为你的类模型做很多工作,你也就能够做很多影响你通过Code First创建的模型的事情。
在本书中,你会学习到通过默认方式CodeFirst能够做什么,并且如何通过更加深入的配置方式去让CodeFirst理解你的属性、类、关系和它们所映射的数据库架构(不管你是用Codefirst辅助创建还是已经存在的数据库),通过这些知识,当你在对已经存在的类或者为一个新的软件项目构建的类时,你能够感受到Entity framework带来的好处。
读者
本书是为已经有Visual Studio和数据库管理基础的.net开发者设计的,最好是有Eneity Framework开发经验,但这不是必须的。本书的代码样例是以C#语言写的,当然这些代码也可以用Visual Basic表示,网上有很多工具可以把C#的代码片段转换为Visual Basic。
本书的内容
本书包含8章
第一章:本章提供了一个高水平,点对点的Codefirst概况,你会看到一些样例代码,但在第一章并没有对整本书的漫游(walkthrough)。本章会掀起一个在Codefirst中找不到的问题讨论,以至于你能够大概地接触到一些所期望技术。
第二章:在本章,你会为代码吓一跳(to jumpright out of one's skin要是直译的话,就是某人从皮肤里跳出来。这当然是不可能发生的,所以你永远也不可能看到这种现象。实际上,to jumpright out of one's skin是指一个人由于突然发生的事,或者是由于没有预料到的危险,使他吓一跳。同样的,要是突然发生一件令人非常高兴的事,使某人非常惊喜,在这种场合下也能用这个常用语。)。本章给你一个机会通过CodeFirst手把手的工作(或者你愿意的话,只是读读)当你通过一个简单的类去看看一些基本的默认行为并且通过两种机制(Data Annotation和Fluent API)执行一些简单的配置。你会看到CodeFirst如何自动通过默认行为为你创建一个数据库。尽管在接下来的四章你会依赖这个默认创建的数据库,在第六章你会学习如何通过已经存在的数据库工作,并且运用更多的功能去控制数据库。
第三章:这是深入学习Code First约定和配置三章中的第一章。你会学到CodeFirst设置属性(例如字符串长度)的约定和如何解释概念模型和数据库。你会学习如何通过Data Annotation和Fluent API去控制模型和数据库的结果。
第四章:在本章,你会关注在你的类之间的关系和如何在Code First指向的模型和数据库中工作。Code First的约定有能力推断大部分的关于类之间关系的情况,我们会更加细致地着眼于你所创建的类的细微差别,这些差别能够驱动Code First判定和准确判断你想做什么,同样是通过Data Annotation和Fluent API。
第五章:本章专注在类如何映射到数据库。这些信息在映射你的类到已经存在的数据库时特别重要。简单映射,例如指定表名或者列名和类型的区别。你会学习到当你在你的类之间有继承结构的定义时如何默认映射到的数据库并且如何驱动“表单继承“(Table Per Hierachy);“表单类”(Table Per Type)和甚至“表单实体类”(Table Per Concrete Type)映射到数据库。你会学习如何映射一个单实体到一个多表或者反过来,多实体映射到一个单表。
第六章:本章是你最终将偏离默认创建的数据库的行为。你会学习如何控制Code First的数据库名的决策和定位,不管你是通过连接字符串或者其他低等级的Code First API代码。你会找到一切其他的控制连接的技巧等等。
第七章:在本章,你会深入Code First,去看看如何运用一些高级技巧。你会看到当你想完全控制任务时,如何避免在模型中Code First担心的数据库同步问题。你同样会学习到默认的模型缓存和如何去重写它解决一些问题,例如在同样的应用实例中提供多个数据库定位。其他的高级话题也在此章有所提及。
第八章:本书是基于4.2版的Entity Framework的Code First特性所编写的,在编写的同时,一大批的技术社区展示了一些即将到来的Code First版本中的某些特性。本章将分享这些未来版本的可用信息。