第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 Innerjoin与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一对一(l 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执行非查询变更指令——ExecuteSql Command 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