包邮 你掌握的Entity Framework 6.x与Core 2.0+实用精要 共3本

包邮 你掌握的Entity Framework 6.x与Core 2.0+实用精要 共3本 pdf epub mobi txt 电子书 下载 2025

汪鹏,吕高旭,邹琼俊 著
图书标签:
  • Entity Framework
  • EF6
  • EF Core
  • 数据库
  • 开发
  • 编程
  • 技术
  • 教程
  • 书籍
  • 包邮
  • 精要
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 旷氏文豪图书专营店
出版社: 清华大学
ISBN:9787302500179
商品编码:28883505239

具体描述

SL259  9787302500179 9787302485933 9787302465041

你掌握的Entity Framework 6.x与Core 2.0

《你掌握的Entity Framework 6.x与Core 2.0 》针对Entity Framework 6.x和Entity Framework Core 2.0以通俗易懂的语言进行深入、全面的探讨,并结合实例来介绍如何灵活运用。

《你掌握的Entity Framework 6.x与Core 2.0 》共四篇,内容分为19章,一篇(第~3章)讲述Entity Framework 6.x基础,并深入讲解如何创建过滤索引、迁移的本质等;第二篇(第4~8章)讲述Entity Framework 6.x进阶,充分阐述Entity Framework 6.x背后隐藏的原理、性能优化、并发解析等;第三篇(第9、10章)讲述Entity Framework Core 2.0基础,并对Entity Framework Core每一版本所出现的新特性进行详细介绍和深入研究;第四篇(第11~19章)讲述Entity Framework Core 2.0进阶,内容包括Entity Framework Core变更追踪策略、创建上下文实例方式、性能优化,结合Entity Framework Core 2.0特性实现多租户模式,利用Entity Framework Core进行数据审计、并发解析等。

《你掌握的Entity Framework 6.x与Core 2.0 》适合ASP.NET开发人员阅读,也适合高等院校和培训学校相关专业的师生作为教学参考书。


 

第一篇  Entity Framework 6.x基础

第1章  Entity Framework的发展 3

1.1  Entity Framework版本介绍 3

1.2  Entity Framework 领域建模方式 4

1.2.1  Code First 4

1.2.2  Model First 5

1.2.3  Database First 5

1.3  使用Entity Framework Code First 6.x 的原因 6

1.4  小结 6

第2章  数据库表的创建和迁移 7

2.1  数据库连接和初始化策略 7

2.1.1  数据库连接 7

2.1.2  数据库初始化策略 10

2.2  约定 11

2.2.1  类型发现 11

2.2.2  主键约定 12

2.2.3  关系约定 13

2.2.4  复杂类型约定 14

2.2.5  自定义约定 15

2.3  基于代码配置 22

2.4  配置属性映射和关系映射 24

2.4.1  属性映射 25

2.4.2  关系映射 42

2.4.3  私有化属性映射 56

2.5  继承映射策略 58

2.5.1  Table per Hierarchy(TPH) 58

2.5.2  Table per Type(TPT) 59

2.5.3  Table per Concrete class(TPC) 62

2.5.4  Entity Splitting 65

2.5.5  Table Splitting 67

2.6  代码迁移 69

2.6.1  迁移命令 69

2.6.2  迁移的本质 73

第3章  实体状态和数据操作 82

3.1  实体状态 82

3.2  数据操作 84

3.2.1  数据查询 85

3.2.2  数据保存 102

3.2.3  自动生成存储过程 112

3.3  避免陷阱 115

3.3.1  导航属性查询 115

3.3.2  分页查询 116

3.3.3  语义可空 117

3.3.4  表值函数 119

3.3.5  日期操作 121

3.4  基础篇实战 122

第二篇  Entity Framework 6.x进阶

第4章  上下文管理和变更追踪原理 137

4.1  上下文生命周期管理 137

4.1.1  基础模式追溯 137

4.1.2  生命周期追溯 139

4.1.3  进化模式追溯 142

4.2  变更追踪原理 144

4.2.1  快照式变更追踪 144

4.2.2  代理式变更追踪 146

第5章  变更追踪原理和日志管理 155

5.1  DetectChanges原理 155

5.1.1  DetectChanges的用途 155

5.1.2  调用DetectChanges方法的时机 157

5.1.3  关闭自动调用DetectChanges方法 159

5.1.4  遗忘的二进制属性和复杂类型 162

5.2  日志记录 165

5.2.1  ToString打印 165

5.2.2  简单日志打印 166

5.2.3  结构化日志输出 169

5.2.4  构造块拦截 171

5.2.5  拦截器异常性能监控 175

5.2.6  拦截器解决EF 6.1忽略字符串空格历史遗留问题 187

5.3  事务 191

5.4  连接弹性 212

第6章  并发冲突 217

6.1  初级版解析 217

6.2  中级版解析 222

6.2.1  客户端获胜 223

6.2.2  数据库获胜 224

6.2.3  客户端和数据库合并获胜 225

6.3  高级版解析 226

6.3.1  简单重试策略 226

6.3.2  Polly重试策略 227

第7章  性能优化实践 231

7.1  优化一:预编译视图 231

7.2  优化二:减少首次与数据库交互的代码 235

7.3  优化三:NGen安装Entity Framework 程序集 237

7.4  优化四:AsNoTracking 239

7.5  优化五:缓存 239

7.6  优化六:重新编译查询 245

7.7  优化七:避免“N+1”Select查询 249

7.8  优化八:添加索引 251

7.9  优化九:关闭回调DetectChanges方法 255

7.10  优化十:使用异步查询 257

第8章  Entity Framework 6.x实战 258

8.1  工作单元泛型仓储模式 258

8.2  依赖注入泛型仓储模式 278

第三篇  Entity Framework Core 2.0基础

第9章  数据库表的创建和迁移 295

9.1  数据库初始化策略 295

9.2  配置属性映射和关系映射 298

9.2.1  属性映射 300

9.2.2  Backing Fields 311

9.2.3  Alternate Keys 316

9.2.4  Shadow Property 317

9.2.5  Owned Entities 321

9.2.6  HasQueryFilter修改 322

9.2.7  关系映射 327

9.2.8  继承映射 346

9.3  代码迁移 351

9.3.1  控制台程序迁移 351

9.3.2  Web应用程序迁移 353

9.3.3  多个上下文迁移 364

9.3.4  脚手架逆向迁移 367

第10章  数据操作和初始化数据 371

10.1  实体状态 371

10.2  数据操作 371

10.2.1  数据查询 371

10.2.2  数据保存 393

10.3  无连接实体 398

10.4  初始化数据 401

第四篇  Entity Framework Core 2.0进阶

第11章  性能优化实践 407

11.1  AsNoTracking 407

11.2  EF.Functions.Like 410

11.3  自定义标量函数 412

11.4  显式编译查询 416

11.5  上下文实例池 419

第12章  查询实体元数据和模型数据验证 424

12.1  查询元数据 424

12.2  内置模型验证 426

12.3  第三方扩展模型验证 429

第13章  上下文实例创建方式 432

13.1  显式创建上下文实例 432

13.1.1  带有构造函数的OnConfiguring方法 432

13.1.2  传递连接字符串参数到构造函数 433

13.1.3  使用不带依赖注入的DbContextOptions 433

13.2  依赖注入容器创建上下文实例 434

13.2.1  带有无参构造函数的DI 434

13.2.2  带DbContextOptions的DI 434

13.3.3  使用泛型DbContextOptions 435

13.3.4  使用AddDbContext/AddDbContextPool 436

第14章  实现多租户 437

第15章  捕获审计数据 446

第16章  变更追踪策略和日志管理 451

16.1  变更追踪策略 451

16.1.1  INotifyPropertyChanged 453

16.1.2  INotifyPropertyChanging 457

16.2  日志管理 458

16.2.1  添加控制台包输出 458

16.2.2  自定义日志输出 459

第17章  xUnit单元测试 462

17.1  控制台单元测试 463

17.2  NET Core Web应用程序单元测试 465

第18章  事务和并发冲突 468

18.1  事务 468

18.2  并发冲突 473

18.2.1  初级版解析 474

18.2.2  中级版解析 478

18.2.3  高级版解析 482

第19章  Entity Framework Core 2.1 待发布 488


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



ASP.NET MVC企业级实战

ASP.NET MVC 是微软官方提供的以MVC模式为基础的ASP.NET Web应用程序框架。MVC
将一个Web应用分解为Model、View和Controller,有助于管理复杂的应用程序,并简化了分组开发,使得复杂项目更易维护。本书共分为12章,以符合初学者思维的方式系统地介绍ASP.NET
MVC的应用技巧,并结合实际项目详细地介绍如何基于ASP.NET MVC构建企业项目。通过本书的学习,读者可以全面掌握ASP.NET
MVC的开发,并从代码中获取软件开发与架构设计的经验与灵感。本书具有很大的参考价值,既适合ASP.NET MVC开发初学者阅读,也适合有基础的ASP.NET
MVC开发人员进行技术强化和经验积累,同时还适合作为高等院校和培训学校相关专业的教学参考书。
 

第1章  MVC开发前奏 1

1.1  开发环境搭建 1

1.1.1  操作系统和开发工具 1

1.1.2  开发环境配置 3

1.1.3  VS常用快捷键 7

1.1.4  VS技巧 8

1.2  常用辅助开发工具介绍 10

1.2.1  Firebug 10

1.2.2  HttpRequester 12

1.3  知识储备 13

1.3.1  必备知识介绍 13

1.3.2  树立软件开发信心 13

1.4  C#语法新特性 14

1.4.1  C# 2.0 新特性 14

1.4.2  C# 3.0/C# 3.5 新特性 16

1.4.3  C# 4.0新特性 26

1.4.4  C#5.0新特性 28

第2章  Entity Framework 29

2.1  Entity Framework简介 29

2.1.1  与ADO.NET的关系 29

2.1.2  什么是O/R Mapping 29

2.1.3  ORM in EF 30

2.1.4  EF的优缺点 30

2.2  Database First 开发方式 31

2.2.1  创建Dtabase First Demo 31

2.2.2  EF原理 34

2.3  Entity Framework增删改查 37

2.3.1  附加数据库 37

2.3.2  新建项目 39

2.3.3  新增 39

2.3.4  简单查询和延时加载 40

2.3.5  根据条件排序和查询 42

2.3.6  分页查询 43

2.3.7  修改 43

2.3.8  删除 45

2.3.9  批处理 46

2.4  EF查询相关 48

2.4.1  IQueryable与IEnumberable接口的区别 48

2.4.2  LINQ To EF 48

2.4.3  关于EF对象的创建问题 50

2.4.4  关于上下文的使用注意事项 51

2.4.5  EF 跨数据库支持 51

2.5  Model First 开发方式 51

2.5.1  创建Model First Demo 52

2.5.2  经验分享 60

2.6  Code First 开发方式 60

2.6.1  创建Code First Demo 61

2.6.2  关于EF实例的创建问题 68

第3章  初识MVC 69

3.1  MVC简介与三层架构 70

3.1.1  MVC简介 70

3.1.2  三层架构 71

3.2  ASP.NET的两种开发方式 72

3.2.1  ASP.NET开发现状 72

3.2.2  WebForms的开发方式 73

3.2.3  ASP.NET MVC的开发方式 74

3.3  第一个ASP.NET MVC程序 75

3.3.1  创建项目 75

3.3.2  项目框架结构说明 77

3.3.3  路由——映射URL到Action 79

3.3.4  返回string的MVC方法 81

3.3.5  简单了解Razor视图 81

3.3.6  ASP.NET MVC组件之间的关系 82

3.4  MVC的约定 82

3.4.1  控制器的约定大于配置 83

3.4.2  视图的相关约定 83

第4章  MVC进阶 84

4.1  View详解 84

4.1.1  View和Action之间数据传递的方式 84

4.1.2  TempData、ViewData和ViewBag的区别 85

4.2  Razor视图引擎 88

4.2.1  什么是 Razor 88

4.2.2  Razor 语法 89

4.2.3  Razor 布局——整体视图模板 92

4.2.4  Razor 布局——ViewStart 93

4.2.5  Razor 布局——部分视图 93

4.2.6  视图引擎 95

4.2.7  MVC视图的“秘密” 96

4.3  Controller 98

4.3.1  Action方法参数与返回值 98

4.3.2  Action指定使用视图 100

4.3.3  View和Controller之间的关系 102

4.4  Model和验证 104

4.4.1  Net MVC请求处理流程 104

4.4.2  MVC模型验证 104

4.5  HtmlHelper 111

4.5.1  HtmlHelper的Action、表单标签 112

4.5.2  HtmlHelper的弱类型与强类型方法 113

4.5.3  HtmlHelper的RenderPartial 116

4.5.4  HtmlHelper的RenderAction 116

4.5.5  HtmlHelper扩展方法 117

4.6  ASP.NET MVC分页 118

4.6.1  HtmlHelper 118

4.6.2  局部视图 124

4.6.3  MvcPager 127

4.6.4  第三方UI组件 131

第5章  MVC核心透析 132

5.1  MVC Routing 132

5.1.1  Routing——URL 133

5.1.2  Routing的作用 134

5.1.3  Routing包含字面值的URL 134

5.1.4  Routing测试 135

5.2  异步Ajax 137

5.2.1  传统Ajax实现方式 137

5.2.2  Unobtrusive Ajax使用方式 140

5.2.3  AjaxHelper 141

5.2.4  请求Json数据 144

5.3  MVC Areas 146

5.3.1  Area使用入门 146

5.3.2  Area注册类放到单独程序集 148

5.3.3  Area注册控制器放到单独程序集 150

5.4  MVC Filter 151

5.4.1  Action 152

5.4.2  Result 153

5.4.3  AuthorizeAttribute 157

5.4.4  Exception 158

5.5  MVC整体运行流程 159

5.5.1  进入管道 159

5.5.2  路由注册 162

5.5.3  创建MvcHandler对象 164

5.5.4  执行MvcHandler ProcessRequest方法 166

5.5.5  调用控制器里面的Action方法 169

5.5.6  根据Action方法返回的ActionResult加载View 172

第6章  网站性能和安全优化 175

6.1  缓存 175

6.2  压缩合并css和js 178

6.3  删除无用的视图引擎 179

6.4  使用防伪造令牌来避免CSRF攻击 181

6.5  隐藏ASP.NET MVC版本 182

6.6  Nginx服务器集群 182

6.6.1  Nginx是什么 182

6.6.2  Nginx的应用现状和特点 184

6.6.3  Nginx的事件处理机制 184

6.6.4  Nginx不为人知的特点 186

6.6.5  Nginx的内部模型 186

6.6.6  Nginx如何处理请求 188

6.6.7  Nginx典型的应用场景 188

6.6.8  Nginx的应用 189

6.6.9  Nginx常见配置说明 190

6.6.10  集群案例 195

6.7  常用的Web安全技术手段 197

第7章  NHibernate 199

7.1  NHibernate简介 199

7.1.1  什么是NHibernate 199

7.1.2  NHibernate的架构 199

7.1.3  NHibernate与其Entity Framework框架比较 200

7.2  第一个NHibernate应用程序 201

7.2.1  搭建项目基本框架 201

7.2.2  编写映射文件 206

7.2.3  添加数据访问层类 209

7.2.4  添加业务逻辑层类 210

7.2.5  添加控制器和视图 211

7.3  增删改查询 212

7.4  使用代码映射 213

7.4.1  NHibernate入职Demo 214

7.4.2  NHibernate代码映射高级功能 217

7.5  监听NHibernate生成的SQL 224

7.5.1  使用show_sql 224

7.5.2  使用NHibernateProfile 225


第8章  IoC 、Log4Net和Quartz.Net 228

8.1  Unity 228

8.1.1  获取Unity 228

8.1.2  Unity简介 229

8.1.3  Unity API 229

8.1.4  使用Unity 229

8.2  Spring.Net 234

8.2.1  Web.config中的属性注入 234

8.2.2  在单独的配置文件中构造函数注入 238

8.3  Log4Net 240

8.3.1  配置Log4Net环境 240

8.3.2  Log4Net相关概念 244

8.4  Quartz.Net 244

8.4.1  Quartz.Net概述 244

8.4.2  参考资料 244

8.4.3  Quartz.Net使用示例 245

第9章  分布式技术 256

9.1  WebService 256

9.1.1  创建一个WebService并调用 256

9.1.2  调用天气预报服务 259

9.2  WCF 262

9.2.1  什么是WCF 262

9.2.2  理解面向服务 263

9.2.3  WCF体系架构简介 263

9.2.4  WCF的基础概念介绍 264

9.2.5  创建第一个WCF程序 269

9.2.6  WCF和WebService的区别 276

9.3  Web API 276

9.3.1  创建WebAPI 277

9.3.2  调用WebAPI 278

9.3.3  WebAPI授权 282

9.3.4  WebAPI的调试 285

9.4  Memcached 285

9.4.1  Memcached简介 285

9.4.2  Memcached 基本原理 287

9.4.3  Memcached服务端的安装 288

9.4.4  C#操作Memcached 290

9.5  Redis 292

9.5.1  Redis简介 292

9.5.2  Redis与Memcached的比较 292

9.5.3  Redis环境部署 293

9.5.4  Redis常用数据类型 296

9.5.5  给Redis设置密码 302

9.5.6  Redis主从复制 303

9.6  MongoDB 306

9.6.1  MongoDB简介 306

9.6.2  下载安装和配置 307

9.6.3  使用mongo.exe 执行数据库增删改查操作 311

9.6.4  更多命令 313

9.6.5  MongoDB语法与现有关系型数据库SQL语法比较 315

9.6.6  可视化的客户端管理工具MongoVUE 315

9.6.7  通过C#的samus驱动进行操作 317

9.6.8  索引 320

第10章  站内搜索 323

10.1  SEO 323

10.1.1  SEO简介 323

10.1.2  开发时要考虑SEO 324

10.1.3  关于搜索 326

10.2  Lucene.Net简介和分词 328

10.2.1  Lucene.Net简介 328

10.2.2  分词 329

10.2.3  盘古分词算法的使用 332

10.3  最简单的搜索引擎代码 334

10.4  搜索的第一个版本 340

10.5  搜索的优化版 349

10.5.1  热词统计 349

10.5.2  热门搜索 354

10.5.3  标题和内容都支持搜索并高亮展示 357

10.5.4  与查询、或查询、分页 358

第11章  财务对账系统 366

11.1  需求 366

11.2  前台UI框架搭建 367

11.3  菜单特效 374

11.4  面板折叠和展开 376

11.5  tab多页签支持 379

11.6  Controller和View的交互 381

11.7  增改查匹配 389

11.8  统计报表 407

11.9  服务器端排序 425

11.10  从ASP.NET MVC中导出Excel文件 428

11.10.1  异步导出 429

11.10.2  实时导出 431

11.11  数据同步 432

第12章  通用角色权限管理系统 434

12.1  需求分析 434

12.2  技术选型 434

12.3  数据库设计 435

12.4  架构搭建 439

12.4.1  新建解决方案和项目 439

12.4.2  通用层搭建 441

12.4.3  数据访问层搭建 442

12.4.4  业务逻辑层 459

12.4.5  UI层 465

12.5  功能实现 466

12.5.1  用户登录 466

12.5.2  采用分布式的方式记录异常日志 472

12.5.3  授权 474

12.5.4  增删改查 475

12.6  运行项目 475 


.NET 数据访问精研:从 EF 6 到 EF Core,构建高效、可靠的现代应用 在现代软件开发领域,数据是核心的驱动力,而如何高效、安全地与数据进行交互,则是衡量应用质量的关键指标之一。尤其是在 .NET 生态系统中,Entity Framework (EF) 系列作为 ORM (Object-Relational Mapper) 的佼佼者,早已成为开发者们构建数据驱动应用的基石。本书旨在深入剖析 Entity Framework 6.x 与 Entity Framework Core 2.0+ 的核心概念、核心技术以及高级应用模式,为 .NET 开发者提供一份详尽的实战指南,助力您掌握现代数据访问的精髓。 一、 奠定坚实基础:Entity Framework 6.x 深度解析 尽管 Entity Framework Core 正在快速发展,但 Entity Framework 6.x 仍然在许多成熟的应用中扮演着重要的角色,并且其许多设计理念和模式对于理解 EF Core 仍具有不可替代的价值。本书将从 EF 6.x 的基础入手,带您全面理解其核心架构和工作原理。 ORM 的概念与 EF 6.x 的定位: 我们将首先回顾 ORM 的基本原理,阐述其如何弥合对象模型与关系型数据库之间的鸿沟。随后,深入探讨 EF 6.x 作为经典 ORM 框架的独特设计,包括 Code-First、Database-First 和 Model-First 三种开发模式的优劣及适用场景。您将学会如何根据项目需求选择最合适的开发模式,并掌握每种模式下的详细配置与实现细节。 DbContext 的生命周期与管理: `DbContext` 是 EF 6.x 中进行数据操作的核心入口。本书将详细剖析 `DbContext` 的创建、使用与释放的全过程,包括连接字符串的管理、连接池的工作机制以及如何有效地管理 `DbContext` 的实例,以避免常见的内存泄漏和性能问题。您将学习到各种 `DbContext` 的实例化策略,例如使用依赖注入来管理 `DbContext` 的生命周期,这对于构建可维护、可扩展的应用至关重要。 实体映射与模型配置: 如何将领域模型对象准确地映射到数据库表,是 ORM 的核心挑战。本书将深入讲解 EF 6.x 的实体映射机制,包括属性映射、导航属性、复合主键、外键约束等。您将学习如何使用 Fluent API 和 Data Annotations 来自定义映射规则,以满足复杂的业务需求,例如处理一对一、一对多、多对多等各种关联关系。 查询语言 LINQ to Entities: LINQ (Language Integrated Query) 是 .NET 中强大的查询技术,而 LINQ to Entities 则将这种能力延伸到了数据库层面。本书将详细讲解如何使用 LINQ to Entities 进行高效的数据查询,包括选择、过滤、排序、分组、连接等各种操作。我们将深入分析查询的执行过程,揭示 EF 6.x 如何将 LINQ 查询转换为 SQL 语句,并提供优化查询性能的实用技巧,例如延迟加载、即时加载、显式加载等策略的选择与应用。 数据持久化操作: 从数据的增、删、改、查,到批量操作,本书将全面覆盖 EF 6.x 的数据持久化能力。您将学习如何使用 `DbSet` 进行实体对象的添加、修改和删除,以及如何利用 `SaveChanges` 方法将这些变更一次性提交到数据库。此外,我们还将探讨如何通过 `AddRange`、`RemoveRange` 等方法实现批量操作,大幅提升数据处理效率。 事务管理: 数据库事务是保证数据一致性的关键。本书将详细讲解 EF 6.x 中的事务管理机制,包括显式事务和隐式事务。您将学习如何通过 `DbContext.Database.BeginTransaction()` 来控制事务的范围,以及如何处理并发冲突和回滚操作,确保数据的完整性和可靠性。 高级特性与优化: 除了基础功能,本书还将深入探讨 EF 6.x 的一些高级特性,例如: 并发控制: 讲解乐观并发和悲观并发两种策略,以及如何在 EF 6.x 中实现它们,以应对多用户并发访问带来的挑战。 数据迁移: 介绍 EF 6.x 的 Code-First Migrations 功能,以及如何使用迁移来管理数据库模式的演进,确保数据库与代码的同步。 拦截器: 讲解如何使用拦截器来扩展 EF 6.x 的功能,例如记录 SQL 语句、修改 SQL 查询、处理数据等。 性能调优: 提供一系列实用的性能优化建议,包括查询优化、连接管理、缓存策略等,帮助您构建高性能的数据访问层。 二、 拥抱未来:Entity Framework Core 2.0+ 深度实践 Entity Framework Core (EF Core) 是微软对 EF 的全新重写,它在性能、跨平台支持、可扩展性等方面都进行了重大的改进。本书将重点关注 EF Core 2.0 及以上版本,带您掌握现代 .NET 应用的数据访问新范式。 EF Core 的新特性与优势: 我们将首先对比 EF 6.x 与 EF Core 的主要差异,突出 EF Core 在性能、内存占用、跨平台支持(包括 .NET Core/ .NET 5+)以及模块化设计方面的显著优势。您将理解为什么 EF Core 是构建未来 .NET 应用的首选数据访问框架。 EF Core 的核心概念与架构: 深入理解 EF Core 的核心组件,包括 `DbContext`、`DbSet`、`ModelBuilder` 等。我们将重点讲解 EF Core 的模型构建过程,包括如何使用 `OnModelCreating` 方法进行详细的配置,以及如何利用 Data Annotations 和 Fluent API 来定义实体属性、关系和约束。 EF Core 的数据查询优化: EF Core 在查询性能上进行了大量的优化。本书将深入讲解 EF Core 的查询执行策略,包括: LINQ to Entities in EF Core: 讲解 EF Core 如何将 LINQ 查询转换为高效的 SQL 语句,并重点介绍 EF Core 中对 LINQ 语法的支持和限制。 查询标签 (Query Tags): 学习如何使用查询标签来标记和组织复杂的查询,便于调试和维护。 查询执行计划 (Execution Plans): 介绍如何分析 EF Core 生成的 SQL 查询的执行计划,从而发现性能瓶颈。 EF Core 3.x 及更高版本的性能改进: 重点介绍 EF Core 在新版本中引入的性能优化,例如新的查询编译器、更高效的 LINQ 翻译等。 EF Core 的数据持久化与事务: 讲解 EF Core 中数据插入、更新、删除的 API,以及如何利用 `SaveChanges`、`SaveChangesAsync` 方法高效地将数据同步到数据库。我们还将详细讲解 EF Core 中的事务管理,包括如何使用 `DbContext.Database.BeginTransactionAsync()` 等方法来保证数据的一致性。 EF Core 的模型配置与映射: 深入探讨 EF Core 中更加灵活和强大的模型配置能力。您将学习如何: 配置关系: 精确配置一对一、一对多、多对多关系,以及如何处理导航属性。 设置主键与外键: 灵活定义主键和外键,包括复合主键。 处理表与列的命名: 自定义数据库表和列的名称,以适应现有的数据库模式或满足命名规范。 属性的映射: 精细控制实体属性到数据库列的映射,包括数据类型、精度、是否可为空等。 值对象 (Owned Entities): 学习如何使用 EF Core 的值对象功能来映射复杂类型,提升模型的可读性和表达能力。 EF Core 的数据迁移: EF Core 的数据迁移功能更加现代化和灵活。本书将详细讲解 EF Core 的迁移工具,包括如何创建、应用和回滚迁移,以及如何处理数据库模式的自动化管理,从而实现数据库与代码的平滑演进。 EF Core 的高级特性与扩展: JSON 列支持: 介绍 EF Core 如何原生支持 JSON 列,方便存储和查询结构化数据。 全局查询过滤器 (Global Query Filters): 学习如何使用全局查询过滤器来自动过滤数据,例如实现软删除或多租户隔离。 拦截器 (Interceptors): 深入讲解 EF Core 的拦截器机制,使其比 EF 6.x 更强大,可以拦截命令、保存更改等,实现更精细化的控制。 领域驱动设计 (DDD) 与 EF Core: 探讨如何将 DDD 的思想与 EF Core 结合,构建更具领域意识的数据访问层,包括聚合根、仓储模式等。 性能剖析与优化: 提供一套完整的 EF Core 性能剖析和优化方法论,帮助您识别和解决性能瓶颈,例如查询缓存、连接池配置、使用 `AsNoTracking()` 等。 EF Core 在不同场景下的应用: 结合实际案例,展示 EF Core 在 Web API、桌面应用、微服务等不同场景下的应用实践。 三、 综合应用与进阶:构建企业级数据访问解决方案 掌握了 EF 6.x 和 EF Core 的基础与进阶知识后,本书将进一步引导您构建健壮、可扩展的企业级数据访问解决方案。 依赖注入与 EF Core/EF 6.x: 深入讲解如何在 ASP.NET Core 等现代应用框架中使用依赖注入来管理 `DbContext` 的生命周期,以及如何配置和使用 `DbContext`。 仓储模式 (Repository Pattern) 与单元 of Work (Unit of Work): 结合 EF Core 和 EF 6.x,详细讲解如何实现经典的仓储模式和单元 of Work 模式,以此来封装数据访问逻辑,提高代码的解耦性和可测试性。 单元测试与 EF Core/EF 6.x: 提供针对数据访问层的单元测试策略,包括如何使用 InMemory Provider、SQLite 等方式模拟数据库,以及如何编写有效的单元测试来保证代码的质量。 安全性考量: 讲解在数据访问过程中需要注意的安全问题,例如 SQL 注入的防范、数据加密、敏感信息管理等。 与其他技术栈的集成: 探讨 EF Core/EF 6.x 如何与其他 .NET 技术栈(如 ASP.NET Core MVC/Razor Pages、Blazor、WPF 等)进行无缝集成,构建完整的应用程序。 性能监控与日志: 介绍如何利用 EF Core/EF 6.x 的日志记录功能,以及第三方工具来监控数据访问的性能,及时发现和解决问题。 本书的目标读者: 有一定 .NET 基础,希望深入理解 Entity Framework 6.x 或 Entity Framework Core 的开发者。 正在进行 .NET 项目开发,需要掌握高效、可靠的数据访问技术的工程师。 对 ORM 技术感兴趣,希望系统学习 Entity Framework 系列框架的架构师或技术Lead。 希望提升 .NET 应用性能和可维护性的开发者。 通过本书的学习,您将能够游刃有余地运用 Entity Framework 6.x 和 Entity Framework Core 2.0+ 来构建高性能、高可靠性的 .NET 应用,将数据访问的挑战转化为构建卓越产品的坚实基石。

用户评价

评分

说实话,刚开始买这本书的时候,有点犹豫,因为我对EF的了解仅限于一些基础操作,感觉Core 2.0+可能对我来说有点超前。但读完之后,我发现完全不是我想象的那样。作者用一种非常循序渐进的方式,将EF Core 2.0+的各种新特性和变化讲得透彻明了。他不仅介绍了LINQ的改进,比如更强的查询翻译能力,还重点讲解了EF Core 2.0+在性能上的巨大飞跃,包括查询优化、内存管理以及如何利用SQL Server的某些特定功能来提升效率。让我印象特别深刻的是关于迁移(Migrations)那部分。以前用EF6做迁移,总觉得有点繁琐,而且容易出错。这本书详细解释了EF Core 2.0+中迁移的整个流程,包括如何生成、应用和回滚迁移,以及如何处理复杂的迁移场景。作者还给出了很多实用的技巧,比如如何利用第三方工具来辅助迁移,以及如何编写自定义迁移操作。这本书让我对EF Core 2.0+有了全新的认识,也对未来的项目开发充满了信心。它不仅仅是一本技术手册,更像是一位经验丰富的导师,在我学习新技术的道路上指明了方向。

评分

这本书的讲解风格非常独特,让我耳目一新。作者似乎非常善于抓住核心问题,然后用最直接、最生动的方式将其阐述清楚。比如,在讲解EF Core 2.0+的依赖注入(Dependency Injection)集成时,作者没有一开始就抛出复杂的代码,而是先解释了为什么需要DI,DI能带来什么好处,然后再逐步引入EF Core 2.0+的DI配置和使用方式。这种由浅入深、循序渐进的讲解方式,让即使是对DI不太熟悉的开发者也能很快理解。而且,书中对SQL Server和其他数据库的集成也做了详细介绍,包括不同数据库的驱动安装、连接字符串配置以及EF Core 2.0+对不同数据库特性的支持情况。让我惊喜的是,书中还提到了如何针对SQLite、PostgreSQL等数据库进行优化,这对于需要支持多数据库的项目来说,简直是福音。作者的文字功底也很不错,很多枯燥的技术概念,在他的笔下都变得生动有趣,读起来一点都不觉得乏味。这本书的每一页都充满了作者的用心,让我感受到他不仅仅是在传授技术,更是在分享他的经验和思考。

评分

作为一个多年的.NET开发者,我一直在关注ORM技术的演进,而EF 6.x和EF Core 2.0+无疑是其中的重要代表。这本书恰好完美地覆盖了这两个版本,并且深入剖析了它们之间的联系和区别。作者并没有简单地将两个版本的内容割裂开来,而是巧妙地将它们融为一体,让读者能够清晰地看到EF技术的传承和发展。例如,在讲到LINQ to Entities时,作者会先回顾EF 6.x的实现方式,然后再讲解EF Core 2.0+是如何进行改进和优化的,比如更强大的查询翻译器、更灵活的查询日志记录功能等。让我印象深刻的是,书中对EF Core 2.0+中的一些“坑”也做了详细的提示和解决方案,这对于规避开发中的潜在问题非常有帮助。作者还分享了一些关于EF Core 2.0+的性能基准测试数据,让我能够更直观地感受到新版本在性能上的优势。总而言之,这本书不仅是一本技术参考书,更是一本帮助我全面理解EF技术发展历程、掌握最新技术、并提升开发效率的宝贵资源。

评分

我对这本书最满意的地方在于它对于“实用”二字的极致追求。作者并没有过多地停留在理论层面,而是将大量的篇幅用在了实际应用和解决方案上。比如,在处理并发控制时,书中不仅讲解了EF6的乐观并发和EF Core 2.0+的`IsConcurrencyToken`属性,还提供了针对不同场景下的最佳实践,例如如何设计数据库字段来支持并发,以及如何在UI层进行友好的提示和处理。另外,关于数据访问层的设计模式,书中也给出了非常详细的分析,包括Repository模式、Unit of Work模式等,并结合EF的特性讲解了如何优雅地实现它们,让代码更加模块化、可测试。我还特别喜欢书中关于性能调优的章节,作者分享了一些非常隐蔽但又非常有效的技巧,比如如何通过配置EF来减少SQL查询的次数,或者如何利用EF Core 2.0+的Query Cache来加速重复查询。这些内容是我在其他地方很少能找到的,或者即使找到了,讲解也没有这本书这么深入和清晰。这本书就像一本武林秘籍,把我一直以来在EF开发中遇到的各种瓶颈一一化解,让我感觉自己的技术水平又提升了一个档次。

评分

这本书我实在太满意了,尤其是讲到ORM的性能优化那块。之前写项目的时候,总是感觉数据库访问速度提不上来,明明SQL语句都写得很清晰了,但就是慢,让我一度怀疑人生。看了这本书关于EF6的深入讲解,终于明白了问题所在。作者详细剖析了N+1问题,并且给出了几种非常实用的解决方案,比如使用`Include`和`ThenInclude`来预加载关联实体,还有`AsNoTracking()`的妙用,让我恍然大悟。特别是关于EF Core 2.0+的部分,作者讲解了如何利用`Microsoft.EntityFrameworkCore.Query`命名空间下的高级API来构建更复杂的查询,甚至是如何自定义LINQ提供程序,这一点简直是颠覆了我对ORM的认知。以前总觉得ORM就那样了,能用就行,但看了这本书,才知道ORM的潜力远不止于此。作者的讲解非常细致,每一个知识点都伴随着大量的代码示例,而且示例代码都很贴合实际开发场景,不是那种脱离实际的“玩具代码”。对于那些想要深入理解ORM底层原理,并将其运用到极致的开发者来说,这本书绝对是宝藏。我甚至觉得,这本书的内容,比很多付费的在线课程还要扎实和有价值。

相关图书

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

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有