Entity Framework 实用精要

Entity Framework 实用精要 pdf epub mobi txt 电子书 下载 2025

吕高旭 著
图书标签:
  • Entity Framework
  • EF Core
  • 数据访问
  • ORM
  • C#
  • 数据库
  • 开发
  • 实战
  • 教程
  • 编程
想要找书就要到 静思书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 清华大学出版社
ISBN:9787302485933
版次:1
商品编码:12272069
包装:平装
开本:16开
出版时间:2017-12-01
用纸:胶版纸
页数:346
字数:570000
正文语种:中文

具体描述

产品特色

编辑推荐

Entity Framework 是微软 .NET 平台支持的对象关联映射技术,如今已发展得相当成熟,能够轻松支持大型系统开发,开发人员可以通过实体数据模型对象与数据库进行沟通,建立更坚固的商业应用程序系统,避免因为通过 ADO.NET
直接处理 SQL 语句伴随的风险与可能产生的错误。
《Entity Framework 实用精要》带领读者进入 Entity Framework 的世界,建立必要的技术能力,同时希望读者在完成书本的学习之后,能够更进一步地将其运用在实际项目开发中。

内容简介

Entity Framework 是微软公司 .NET 平台支持的对象关联映射技术,开发人员可以通过实体数据模型对象与数据库进行沟通,建立更坚固的商业应用程序系统,避免因为通过 ADO.NET 直接处理 SQL 语句而带来的风险与可能引发的错误。本书通过介绍Entity Framework与 LINQ 开发实战的案例,以 Entity Framework 技术内容的讨论为主线,结合关键的 LINQ技巧说明,提供读者系统性学习 Entity Framework 所需的内容。
《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设计器),利用抽象化数据结构的方式,将每个数据库对象转化为应用程序实体(或对象),让数据库的E/R模型(实体-关联模型)也就转换为对象模型。这样,让程序设计师能运用自己最熟悉的面向对象的程序设计语言来轻松自如且安全可靠地调用和访问数据库,让大型网页商业应用软件的开发也不是难事。
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.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel;=15
本书的所有范例程序源码及其运行必需的文件,读者都可以从下面的网址下载压缩的文件包,之后解压缩到自己的Visual Studio项目文件夹中即可。
这里提供下载范例程序的网址:
http://pan.baidu.com/s/1cuEVUm(注意区分数字和英文字母大小写)
如果下载有问题,请发送电子邮件至booksaga@126.com,邮件主题设置为“求Entity Framework实用精要下载资源”。
最后做一点说明:我们在编写这些范例程序的时候,为了适用性,大多数范例程序都选择连接的是Visual Studio Community 2017集成开发环境中自带的虚拟数据库(LocalDb)MSSQLLocalDB,因此范例程序对数据库的操作都是对加载到内存中的这个虚拟数据库进行增、删、改等操作,范例程序运行时可以反映出这种变化,但是不会实际修改范例程序运行时载入的实际数据库文件。如果读者要把范例程序拓展到对实际数据库的操作,那么在需要时按照实际应用建立本地或者网络远端的实际数据库,并提供访问的服务即可。
编者
2017年9月


《现代数据驱动应用开发:从容驾驭数据复杂性》 在这个数据爆炸的时代,构建高效、稳定且易于维护的数据驱动应用程序,是每一位软件工程师面临的核心挑战。无论是精美的 Web 应用、强大的后端服务,还是智能化的桌面程序,其背后都离不开对数据的精妙处理。然而,随着项目规模的增长和业务逻辑的复杂化,直接操作数据库的传统方式往往会暴露出诸多问题:代码冗余、可维护性差、性能瓶颈频现,甚至难以应对不断变化的需求。 《现代数据驱动应用开发:从容驾驭数据复杂性》正是在这样的背景下诞生的。这本书并非旨在介绍某一款特定的 ORM 工具,而是着眼于数据访问层设计和实现的核心思想与实践,帮助开发者构建出更具健壮性、可扩展性和可维护性的数据驱动应用。我们相信,理解底层原理,掌握普适性的设计模式,才能在瞬息万变的开发环境中游刃有余。 本书的独特视角与价值: 许多关于数据访问的图书往往会聚焦于某种特定技术的学习,例如某个 ORM 框架的 API 使用、SQL 语句的优化技巧,或是数据库本身的管理。这些技术固然重要,但若缺乏对宏观设计和底层原理的深入理解,开发者很容易陷入“只见树木,不见森林”的困境。我们则采取了更加“以终为始”的策略,从最终目标——构建高质量的数据驱动应用——出发,反推并梳理出实现这一目标所必需的关键知识体系。 本书不纠结于某个特定框架的语法细节,而是深入探讨: 数据模型的设计哲学: 如何根据业务需求,设计出清晰、一致且能够有效映射现实世界对象的数据模型?我们将探讨不同的建模方法,分析其优缺点,并提供实用的指导原则,帮助您避免常见的模型设计陷阱。这包括对实体、值对象、聚合根等领域驱动设计(DDD)核心概念的深入剖析,以及如何将它们转化为数据库的表结构。 数据访问策略与模式: 除了简单的 CRUD(创建、读取、更新、删除)操作,还有哪些更高级、更灵活的数据访问模式能够应对复杂的业务场景?本书将详细介绍诸如仓储模式(Repository Pattern)、单元 of Work 模式(Unit of Work Pattern)、CQRS(命令查询职责分离)等经典设计模式,并结合实际案例,演示如何运用它们来解耦数据访问逻辑,提高代码的可测试性和可维护性。 对象关系映射(ORM)的本质与权衡: ORM 工具极大地简化了数据库操作,但其内部机制和潜在的性能问题并非总被开发者充分理解。本书将深入浅出地剖析 ORM 的工作原理,解释其如何进行对象与数据库表之间的映射,以及它可能带来的性能开销(如 N+1 查询问题、延迟加载的陷阱等)。在理解原理的基础上,我们还将指导读者如何根据具体场景,选择合适的 ORM 配置和使用方式,或者在必要时,如何绕过 ORM,直接编写高效的 SQL 查询,实现性能的最优化。 数据访问层的架构设计: 如何组织和划分数据访问代码,使其易于理解、扩展和复用?本书将提供关于如何构建清晰、模块化数据访问层架构的建议,包括如何分离数据访问逻辑与业务逻辑,如何进行单元测试和集成测试,以及如何为未来的重构和技术升级做好准备。 并发控制与数据一致性: 在多用户、高并发的环境下,如何确保数据的一致性和完整性是一个严峻的挑战。本书将探讨常见的并发控制技术,如悲观锁、乐观锁,以及事务管理的重要性。我们将分析不同场景下的数据一致性需求,并提供相应的解决方案,帮助您构建出能够应对高并发挑战的健壮系统。 性能优化与调优: 即使模型设计良好,代码逻辑清晰,糟糕的数据库交互也可能导致应用性能低下。本书将提供一套系统的性能分析和优化方法,从数据库查询的执行计划分析,到索引的合理使用,再到缓存策略的运用,帮助您找到并解决性能瓶颈,提升应用的响应速度和用户体验。 数据迁移与版本控制: 随着业务的发展,数据库结构往往需要不断演进。如何安全、高效地管理数据库的变更,并确保数据在不同版本之间的一致性?本书将介绍数据迁移的理念和常用工具,帮助您建立起一套可靠的数据库版本控制和迁移流程。 本书适合谁? 初级到中级软件开发者: 希望系统性学习数据访问层设计和实现,摆脱对某个特定 ORM 框架的“黑盒”依赖,构建更优质的数据驱动应用。 有经验的软件架构师: 寻求更深入地理解数据访问的原理和最佳实践,为团队制定数据访问层技术选型和架构规范。 需要提升应用性能和可维护性的团队: 正在经历数据库性能瓶颈,或数据访问代码变得难以维护的团队,需要一套行之有效的改进方案。 对底层原理有探究精神的开发者: 不满足于表面 API 的调用,渴望理解 ORM 如何工作,数据库是如何交互的,从而更精准地掌控开发过程。 本书的承诺: 我们承诺,《现代数据驱动应用开发:从容驾驭数据复杂性》将为您提供一套通用、实用且具有前瞻性的数据访问开发指南。本书将以清晰的逻辑、丰富的案例和深入的解析,帮助您: 构建出更加健壮和可维护的数据访问层。 有效避免常见的性能陷阱,提升应用响应速度。 更从容地应对复杂业务场景下的数据处理需求。 培养独立思考和解决数据访问相关问题的能力。 为构建现代化、可扩展的软件系统奠定坚实的基础。 我们将带领您一起,深入探寻数据驱动应用的本质,掌握驾驭数据复杂性的艺术。抛开对特定工具的片面依赖,聚焦核心原则,让您的数据驱动开发能力实现质的飞跃。

用户评价

评分

刚拿到这本书,就被它厚重的质感和细致的排版所吸引。我是一名有着多年开发经验的.NET开发者,在工作中经常需要处理数据库操作,而 Entity Framework 则是我们团队首选的ORM框架。虽然我们团队已经在使用 EF,但总感觉在某些方面还有提升的空间。我一直希望能够找到一本能够系统性梳理 EF 核心概念,并深入讲解其高级特性的书籍。这本书的书名“实用精要”让我眼前一亮,它暗示着这本书会聚焦于那些真正有用的、能够解决实际问题的知识点,而不是泛泛而谈的理论。我特别关注书中是否会详细介绍 LINQ to Entities 的强大功能,以及如何写出高效、可读性强的查询语句。此外,对于 EF 的性能优化,例如如何避免 N+1 查询问题,如何利用索引和查询跟踪来提升效率,这些都是我非常感兴趣的内容。我还想了解书中是否会涉及 EF 的一些进阶主题,比如仓储模式、Unit of Work 模式的实现,以及如何将 EF 集成到 ASP.NET Core 的项目中,并且能够处理好异步操作。最后,如果书中能提供一些关于 EF 在微服务架构中的应用案例,或者与 DDD(领域驱动设计)结合的实践经验,那将是我莫大的惊喜,也更能体现出这本书的“精要”之处。

评分

这本书的封面设计简洁大方,深邃的蓝色背景搭配银白色的书名,给人一种专业而又充满智慧的感觉。我一直对数据持久化和ORM技术很感兴趣,特别是 Entity Framework,它在.NET生态系统中扮演着举足轻重的角色。市面上关于 EF 的书籍不少,但很多要么过于理论化,要么只讲解皮毛,很难触及核心的精髓。我期待这本书能够提供一种更实操、更深入的学习路径,从基础的概念讲起,逐步深入到高级的应用技巧。比如,我特别想了解在复杂的业务场景下,如何优雅地处理实体之间的关系,如何优化查询性能以应对海量数据的挑战,以及如何在实际项目中运用 EF 的迁移功能来平滑地更新数据库结构。同时,我也希望书中能包含一些关于 EF Core 的最新特性和最佳实践,毕竟技术的更新迭代非常快,跟上最新的发展才能保持竞争力。如果书中能分享一些实际项目中的经验教训,以及一些常见问题的解决方案,那将是锦上添花。例如,在处理并发冲突时,有哪些行之有效的策略?在进行大规模数据导入导出时,又该如何保证效率和数据的准确性?这些都是我在日常开发中经常会遇到的难题。我非常期待这本书能够成为我学习 Entity Framework 的得力助手,帮助我更好地掌握这项强大的技术,并在实际项目中挥洒自如。

评分

我是一名初学者,最近开始接触 .NET 开发,并且听说了 Entity Framework 的强大之处,所以想找一本入门级的书籍来系统学习。这本书的书名“实用精要”让我觉得它可能不会像某些教材那样枯燥乏味,而是更侧重于教会我如何快速上手并解决实际问题。我希望这本书能够从最基础的概念开始,比如如何建立数据库连接,如何通过 EF Code-First 或 Database-First 的方式生成实体模型,以及如何进行基本的 CRUD(增删改查)操作。我特别希望能看到清晰的代码示例,能够让我一步一步地跟着做。同时,我也想了解 EF 中的关系映射,比如一对一、一对多、多对多的关系是如何定义的,以及如何在 LINQ 中进行导航查询。对于初学者来说,一些常见的陷阱和错误解决方案也至关重要,如果书中能够包含一些“避坑指南”,那将是非常宝贵的。此外,如果书中还能简单介绍一下 EF 的事务管理,以及如何在 Web 应用中使用 EF,那就更完美了。总之,我希望这本书能像一位耐心的老师,一步步引导我走进 Entity Framework 的世界,让我能够自信地运用它来完成我的开发任务。

评分

我一直在寻找一本能够帮助我更深入理解 Entity Framework 核心机制的书籍。这本书的标题“实用精要”听起来非常吸引人,暗示它将提供真正有价值且易于掌握的知识。我最感兴趣的部分是关于 EF 的高级特性和性能优化。例如,我希望能够深入了解 EF 的并发控制机制,以及如何有效地处理乐观并发和悲观并发。对于查询优化,我渴望学习如何通过分析 EF 生成的 SQL 语句来发现性能瓶颈,并掌握更高级的 LINQ 技巧,例如使用 `AsEnumerable()`、`ToList()` 和 `AsTracking()` 等方法时的性能差异。此外,书中是否会涉及 EF 的自定义行为,比如如何实现自定义拦截器来记录 SQL 语句,或者如何扩展 EF 的功能来满足特定的业务需求。我也非常想了解 EF 在分布式系统中的应用,例如如何将其与 RabbitMQ 或 Kafka 等消息队列结合使用,以及如何在多实例部署环境下保证数据的一致性。如果书中还能包含一些关于 EF 的安全方面的内容,例如如何防止 SQL 注入,以及如何进行敏感数据的加密处理,那将为这本书增添更多的实用价值。

评分

在我看来,一本优秀的数据库访问技术书籍,不仅仅是罗列 API 列表,更重要的是能够帮助读者理解技术背后的设计理念和最佳实践。这本书的书名“实用精要”让我对其抱有很高的期望。我尤其关注书中是否能够深入剖析 Entity Framework 的工作原理,例如它如何将 LINQ 查询转化为 SQL 语句,以及它在对象关系映射方面的具体实现。我希望能看到关于 EF 的性能调优技巧,比如如何有效地使用 `Include` 和 `ThenInclude` 来加载相关数据,如何针对复杂查询进行手动优化,以及如何利用 EF 的缓存机制来提升应用程序的响应速度。此外,对于 EF Core 的一些新特性,比如 GraphQL 集成、性能监控以及与 Azure Cosmos DB 等 NoSQL 数据库的集成,如果书中能够有所涉猎,那将极大地提升其价值。我也期待书中能够探讨 EF 在不同项目场景下的应用,例如在 Web API、桌面应用,甚至是批处理任务中的最佳实践。如果还能包含一些关于 EF 的测试策略,如何编写单元测试和集成测试来保证数据访问的健壮性,那这本书在我眼中就堪称是“精要”中的“精要”了。

评分

此用户未填写评价内容

评分

很不错的一本书,需要的朋友值得拥有

评分

图文并茂,细节丰富,step by step,不厌其烦,非常棒!美中不足的是排版有问题,代码没有恰当的换行,有些语句不太通顺,瑕不掩瑜,推荐!

评分

图文并茂,细节丰富,step by step,不厌其烦,非常棒!美中不足的是排版有问题,代码没有恰当的换行,有些语句不太通顺,瑕不掩瑜,推荐!

评分

图文并茂,细节丰富,step by step,不厌其烦,非常棒!美中不足的是排版有问题,代码没有恰当的换行,有些语句不太通顺,瑕不掩瑜,推荐!

评分

专业的书,喜欢

评分

很全面,不错的一本书。

评分

入门级书籍,第一次用到EF,基本掌握了

评分

市面上不多的专门讲EF模型的书,虽然内容不怎么深入,但作为入门后的参考还是不错的。非常令人不爽的是所有的示例代码竟然不分行,看起来有一种读盗版书满篇错字的感觉。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有