新書推薦:
《
历史的严妆:解读道学阴影下的南宋史学(中华学术·有道)
》
售價:HK$
109.8
《
海外中国研究·江南:中国文雅的源流
》
售價:HK$
76.2
《
迟缓的巨人:“大而不能倒”的反思与人性化转向
》
售價:HK$
77.3
《
我们去往何方:身体、身份和个人价值
》
售價:HK$
67.0
《
大学问·批判的武器:罗莎·卢森堡与同时代思想者的论争
》
售價:HK$
98.6
《
低薪困境:剖析日本经济低迷的根本原因
》
售價:HK$
66.1
《
穷人的银行家(诺贝尔和平奖获得者穆罕默德·尤努斯自传)
》
售價:HK$
76.2
《
绵延:文明分野与文化演进
》
售價:HK$
66.1
|
編輯推薦: |
Entity Framework 是微软 .NET 平台支持的对象关联映射技术,如今已发展得相当成熟,能够轻松支持大型系统开发,开发人员可以通过实体数据模型对象与数据库进行沟通,建立更坚固的商业应用程序系统,避免因为通过 ADO.NET直接处理 SQL 语句伴随的风险与可能产生的错误。本书带领读者进入 Entity Framework 的世界,建立必要的技术能力,同时希望读者在完成书本的学习之后,能够更进一步地将其运用在实际项目开发中。
|
內容簡介: |
Entity Framework 是微软公司 .NET 平台支持的对象关联映射技术,开发人员可以通过实体数据模型对象与数据库进行沟通,建立更坚固的商业应用程序系统,避免因为通过 ADO.NET 直接处理 SQL 语句而带来的风险与可能引发的错误。本书通过介绍Entity Framework与 LINQ 开发实战的案例,以 Entity Framework 技术内容的讨论为主线,结合关键的 LINQ技巧说明,提供读者系统性学习 Entity Framework 所需的内容。 本书旨在帮助读者进入 Entity Framework的世界,建立必要的技术能力,同时希望读者在完成本书的教学课程之后,能够更进一步地将其运用在实际的项目开发中。
|
關於作者: |
吕高旭,台湾康廷数字创始人, 专注程序语言与各种应用开发方法的教学,包括实体纸本图书出版与在线课程服务。
|
目錄:
|
目 录
第1章 Entity Framework概观 1
1.1 初探Entity Framework 1
1.2 Entity Framework与ADO.NET 9
1.3 对象关联映射ORM 13
1.4 Entity Framework开发流程 14
1.5 空EF设计器模型 16
1.6 使用Code First 27
1.6.1 来自数据库的Code First 27
1.6.2 空Code First模型 31
1.7 小结 34
第2章 实体数据模型 35
2.1 实体数据模型概观 35
2.2 模型工具与.edmx文件 36
2.2.1 概念模型 39
2.2.2 存储模型 42
2.2.3 映射 42
2.3 实体数据模型与类文件 44
2.4 POCO与实体数据模型 46
2.5 实体类结构映射 53
2.5.1 数据注解属性 54
2.5.2 Fluent API 61
2.6 EF Designer数据库更新 65
2.7 Code First数据库迁移 71
2.7.1 结构变动迁移 76
2.7.2 查看SQL 78
2.7.3 指定迁移 79
2.8 关于DbContext 79
2.8.1 传送SQL语句与数据转换 80
2.8.2 查询与连接议题 81
2.8.3 管理更新操作 82
2.8.4 DbContext对象生命期 83
2.8.5 覆写OnModelCreating方法 83
2.8.6 管理与操作数据库Database属性 83
2.8.7 ObjectContext 85
2.9 DbSet 87
2.10 追踪本地数据集 91
2.11 小结 94
第3章 实体数据模型与LINQ 95
3.1 LINQ与Entity Framework 95
3.2 Select选择与投影 99
3.2.1 类型转换 100
3.2.2 多重from与SelectMany 103
3.3 Where与数据筛选 107
3.4 排序 113
3.5 分组 116
3.6 转换 122
3.6.1 AsEnumerable 122
3.6.2 Array与List 125
3.6.3 ToDictionary 128
3.6.4 ToLookup 131
3.7 异步查询 134
3.8 关联Join 136
3.8.1 GroupJoin 139
3.8.2 Inner join与Left Outer Join 141
3.8.3 Entity Framework与Join 142
3.9 LINQ、SQL与Entity SQL 146
3.9.1 关于SQL语句 147
3.9.2 Entity SQL 147
3.9.3 Entity SQL参数 149
3.10 小结 150
第4章 Entity Framework与扩充方法 151
4.1 Enumerable扩充方法 151
4.2 聚合运算 152
4.2.1 计算平均值 153
4.2.2 Average方法与Func 155
4.2.3 聚合函数 158
4.3 设置操作 160
4.4 产生操作 164
4.4.1 Empty与DefaultIfEmpty 164
4.4.2 Range 166
4.4.3 Repeat 167
4.5 计数运算 169
4.5.1 All 169
4.5.2 Any 171
4.5.3 Contains 172
4.6 分割运算 173
4.6.1 Skip与SkipWhile 174
4.6.2 Take与TakeWhile 176
4.7 元素操作 178
4.7.1 First与FirstOrDefault 178
4.7.2 Last与LastOrDefault 180
4.7.3 ElementAt与ElementAtOrDefault 182
4.7.4 Single与SingleOrDefault 183
4.8 扩展方法的异步版本 185
4.9 小结 186
第5章 数据关联与继承 187
5.1 与关联数据互动 187
5.2 Code Frist与关联设计 194
5.2.1 Code First关联设置惯例 196
5.2.2 数据注解 200
5.3 处理特定关联定义 203
5.3.1 一对一(1 to 0..1) 203
5.3.2 多对多(* to *) 208
5.3.3 多对多关联附加数据字段 213
5.4 使用CodeFirst设计关联 216
5.5 Lazy Loading与Eager Loading 223
5.5.1 调整virtual属性 229
5.5.2 Include方法与对象加载 231
5.5.3 Include方法与异步数据加载 234
5.6 继承 235
5.6.1 Table Per Hierarchy(TPH) 235
5.6.2 Table Per Type(TPT) 241
5.6.3 Table Per Concrete Class(TPC) 244
5.7 复杂类型 248
5.8 小结 251
第6章 数据编辑与维护 252
6.1 数据编辑操作 252
6.1.1 实体数据对象状态 255
6.1.2 更新与删除 256
6.1.3 Attach 259
6.1.4 变更追踪DbContext.ChangeTracker 263
6.1.5 更新验证异常DbEntityValidationException 268
6.1.6 DbContext.ValidateEntity方法 271
6.1.7 覆写SaveChange 272
6.1.8 异步的变更更新 274
6.2 SQL语句 275
6.2.1 使用参数 279
6.2.2 执行非查询变更指令ExecuteSqlCommand 280
6.3 存储过程 281
6.3.1 直接调用存储过程 288
6.3.2 获取返回值 289
6.3.3 CodeFirst自动设置存储过程 290
6.4 数据变更冲突 294
6.4.1 并发冲突处理Database Wins或Client Wins 298
6.4.2 SQL语句与数据冲突 300
6.4.3 存储过程与数据冲突 300
6.4.4 ConcurrencyCheck注解 302
6.5 事务处理 304
6.5.1 共享事务处理连接 305
6.5.2 使用TransactionScope 305
6.6 复杂类型的数据对象变更 308
6.7 小结 310
第7章 ASP.NET整合应用 311
7.1 Web Forms与Entity Framework 311
7.1.1 查询 314
7.1.2 更新 315
7.1.3 删除 316
7.1.4 处理单项数据 316
7.1.5 关联设计 319
7.2 MVC与Entity Framework 321
7.2.1 查询 325
7.2.2 更新删除 326
7.2.3 添加 330
7.2.4 关系型数据 332
7.3 WCF服务与实体数据模型 335
7.3.1 WCF应用程序项目 335
7.3.2 数据合约 339
7.3.3 整合Entity Framework 340
7.4 小结 346
|
內容試閱:
|
前 言
程序设计师编写网页商业应用程序时离不开对数据库的运用,基本可以认为,不懂得运用数据库的网页应用程序设计师只是完成了网页美工设计师委托的工作。因为几乎所有的商业化网页用程序都要在后台连接与访问数据库。
然而,没有面向对象的自动化工具,程序设计模型和数据库集成在一起就会让程序逻辑和数据模型杂乱无章地混合在一起,不但开发大型网页商业应用软件无望,就连小型的网页应用程序也没有扩展的能力,将来维护起来更是可以用一塌糊涂来形容。
微软公司在它的ADO.NET这个数据库访问利器的基础上融入了对象关系映射(Object-Relational Mapping)的技术,再加上一个设计的工具(Designer),就构成了现在的 ADO.NET Entity Framework,就是以实体数据模型为主,通过Entity Framework Designer(EF设计器),利用抽象化数据结构的方式,将每个数据库对象转化为应用程序实体(或对象),让数据库的ER模型(实体-关联模型)也就转换为对象模型。这样,让程序设计师能运用自己最熟悉的面向对象的程序设计语言来轻松自如且安全可靠地调用和访问数据库,让大型网页商业应用软件的开发也不是难事。
Entity Framework 是微软 .NET 平台支持的对象关联映射技术,开发人员可以通过实体数据模型对象与数据库进行沟通,建立更坚固的商业应用程序系统,避免因为通过 ADO.NET 直接处理 SQL 语句伴随的风险与可能产生的错误。
从传统的 ADO、ADO.NET 到现在的 Entity Framework,善用新技术让我们在新时代走得更稳,本书主要的目标,除了带领读者进入 Entity Framework 的世界,建立必要的技术能力,同时希望读者在完成书本的学习之后,能够更进一步地将其运用在实际项目开发中。
本书为了方便读者自学或者学校教学,所有的范例程序都是在微软公司提供的免费版Visual Studio Community 2017中用C# 语言为主体编写完成的,所有范例程序都经过了调试和测试,可以顺利运行。
微软的Visual Studio Community 2017可以从微软公司的官方网站下载,网址如下:
https:www.visualstudio.comzh-hansthank-you-downloading-visual-studio?sku=Community&rel=15
本书的所有范例程序源码及其运行必需的文件,读者都可以从下面的网址下载压缩的文件包,之后解压缩到自己的Visual Studio项目文件夹中即可。
这里提供下载范例程序的网址:
http:pan.baidu.coms1cuEVUm(注意区分数字和英文字母大小写)
如果下载有问题,请发送电子邮件至booksaga@126.com,邮件主题设置为求Entity Framework实用精要下载资源。
最后做一点说明:我们在编写这些范例程序的时候,为了适用性,大多数范例程序都选择连接的是Visual Studio Community 2017集成开发环境中自带的虚拟数据库LocalDb\MSSQLLocalDB,因此范例程序对数据库的操作都是对加载到内存中的这个虚拟数据库进行增、删、改等操作,范例程序运行时可以反映出这种变化,但是不会实际修改范例程序运行时载入的实际数据库文件。如果读者要把范例程序拓展到对实际数据库的操作,那么在需要时按照实际应用建立本地或者网络远端的实际数据库,并提供访问的服务即可。
编者
2017年9月
|
|