[翻译] EF Core in Action 关于这本书
Entity Framework Core in Action
Entityframework Core in action是 Jon P smith
所著的关于Entityframework Core 书籍。原版地址. 是除了官方文档外另一个学习EF Core的不错途径, 书中由浅入深的讲解的EF Core的相关知识。因为没有中文版,所以本人对其进行翻译。 预计每两天一篇更新 PS: 翻译难免限于本人水平有不准确的地方,建议英文水平不错的同学直接查看原版,有不足的地方欢迎指正
第一部分目录导航
关于这本书
本书的目的是让读者掌握如何快速,正确的编写EF Core数据库访问代码,并实现高性能. 围绕着 "快速、正确、性能" 这些方面,我提供了大量的示例,其中包含大量的技巧和技术. 在讲解的过程中,我加入了很多EF Core内部原理的内容,因为当数据库访问代码无法按照预期工作时,这些将会帮助你进行分析. 微软的文档也是学习Entity Framework Core不错的选择,但是它没有提供详细的示例. 在本书中,我尝试为每个功能提供一个示例,你会在Git仓库中找到单元测试代码(参见 "关于代码" 部分的链接). 有时阅读单元测试代码会比书中的内容更容易理解,所以单元测试是一种有用的资源.
本书适合什么样的读者
本书面向的是从未使用过EF和经验丰富的EF6x开发人员,以及想要了解EF Core的人. 本书假设读者已经熟悉C#,Net开发,并且对关系型数据库有所了解, 不要求对C#多太过深入的了解,但是如果你初学C#,可能会发现有些代码难以阅读,因为我不会讲解C#,但我会提供一个关于Linq(语言集成查询)的附录
本书内容是如何组织的
本书的路径是从基础(第1部分)开始,深入理解(第2部分),最后以实用的工具和技术(第3部分)结束
我不会假设读者从头到尾的阅读这本书,但至少略读前5章会帮助读者理解我在书中后面使用到的基础知识
Part 1 : 基础
第1章通过第一个简单的控制台应用介绍EF core,你将看到EF Core的每个部分. 我还概述了EF Core的工作原理以及为什么你会爱上它.
第2章介绍了查询(从数据库中读取数据),我将介绍存储在数据库中的数据之间的关系,以及如何使用EF Core加载相关数据
第3章介绍了更改数据库中的数据: 添加、更新、删除
第4章介绍了如何使用EF Core构建健壮的业务逻辑数据库访问代码,业务逻辑是应用程序解决特定业务问题
时所实现的业务规则或工作流代码
的名称
第5章是关于构建使用EF Core的ASP.Net Core应用程序,它汇总了第2章到第4章的内容创建了一个Web应用程序,我还谈到了部署Web应用程序和访问托管数据库
Part 2 : 深入理解Entity Framework core
第6章介绍了配置非关系属性 -- 包含值(如int、string、DateTime等)的属性
第7章介绍了关系的配置-- 类之间的关系, 例如Book包含一个或多个Author. 还讲解了特殊的映射方式,例如将多个类映射到一个表
第8章介绍了高级映射功能以及检测和处理并发冲突
第9章深入讨论EF Core的DbContext的工作原理,并逐一介绍应用程序的DbContext中各个方法和属性的作用
Part 3 : 在真实的应用程序中使用Entity Framework Core
第10章是工具,模式和技巧的概要,可以让你使用EF Core更快速的开发和使代码更加健壮,我还介绍了如何在领域驱动设计方法中使用EF Core
第11章介绍了使用EF Core时更改数据库结构的所有方式,它还包括当你更改实时应用程序所使用的数据库结构时出现的问题
第12章列出了所有可能影响数据库访问性能的问题以及如何处理它们
第13章是一个优化EF Core应用程序性能的示例,我使用第1部分中开发的图书应用程序进行三个级别的性能调优
第14章从介绍更改数据库类型时会发生什么开始,然后介绍一种可以提升某些业务应用程序性能的程序架构,最后以访问和修改EF Core的内部服务结束
第15章是关于使用EF Core进行单元测试的应用程序,我还创建了一个nuget包,你可以使用它帮助你进行单元测试
注: 我在书的章节中都添加了有关EF Core2.1特性的注释,这些指出了2.1版在哪些方面相比较EF 2.0有了新选择
关于代码
我觉得,只有编写代码才会真正的对某些功能或特性有深入的理解. 在git仓库中每章甚至章的部分都有一个自己的分支, 仓库地址可以在这里找到 https://github.com/liangshiw/EfCoreInAction (原地址: https://github.com/JonPSmith/EfCoreInAction). 有关更多信息,请参见git仓库Readme的 在哪里找到代码
部分 https://github.com/liangshiw/EfCoreInAction/blob/master/README.md#wheres-the-code (原地址: https://github.com/JonPSmith/EfCoreInAction/blob/master/README.md#wheres-the-code)
注: 第15章内容是关于单元测试的,它有自己的git仓库 https://github.com/liangshiw/EfCore.TestSupport (原地址: https://github.com/JonPSmith/EfCore.TestSupport)
我之所以将它与前14章分开是因为它包含的工具和功能可以帮助你进行单元测试,你还可以将 EfCore.TestSupport
包安装到你的项目中,使用我在15章中描述的功能
编写代码或运行git仓库中的代码,你需要以下内容
开发环境 (我对原文进行了简化)
- Visual Studio 2017
- 也可以使用Visual Studio Code,我在每个分支中设置了.vscode目录,可以正确的构建,测试和运行代码
- .Net Core SDK
注: git仓库太多使用的是.Net Core 2.0,但是我将一些分支更新到了.Net Core 2.1,参见 https://github.com/liangshiw/EfCoreInAction#net-core-21-examples (原地址: https://github.com/JonPSmith/EfCoreInAction#net-core-21-examples)
其他资源
以下是微软文档,EF Core源码和其他有用的资源的链接
- 微软 EF Core 文档: https://docs.microsoft.com/zh-cn/ef/core/index
- EF Core路线图: https://github.com/aspnet/EntityFrameworkCore/wiki/roadmap
- EF Core源码: https://github.com/aspnet/EntityFrameworkCore
- ASP.NET Core与EF Core共同使用的教程: https://docs.microsoft.com/zh-cn/aspnet/core/data/
- Stack Overflow EF Core tag: [entity-framework-core] https://stackoverflow.com
[翻译] EF Core in Action 关于这本书的更多相关文章
- [翻译 EF Core in Action 2.1] 设置一个图书销售网站的场景
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译 EF Core in Action 1.10] 应该在项目中使用EF Core吗?
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译 EF Core in Action 1.11] 何时不应该使用EF Core
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译 EF Core in Action 1.9] 掀开EF Core的引擎盖看看EF Core内部是如何工作的
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译 EF Core in Action 1.8] MyFirstEfCoreApp应用程序设置
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译 EF Core in Action 1.7] MyFirstEfCoreApp访问的数据库
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译 EF Core in Action 1.6]你的第一个EF Core应用程序
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译 EF Core in Action] 1.5 关于NoSql
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译 EF Core in Action 2.4] 加载相关数据
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
随机推荐
- socketWriter.go
package blog4go import ( "bytes" "fmt" "net" "sync" ) // Soc ...
- asp.net core session丢失问题排查
最近公司采用asp.net core的站点在外测环境中,总是发现存在session丢失的情况.排查了好久,客户端.AspNetCore.Session的cookie未丢失,session的分布式缓存采 ...
- React组件设计
React组件设计 组件分类 展示组件和容器组件 展示组件 容器组件 关注事物的展示 关注事物如何工作 可能包含展示和容器组件,并且一般会有DOM标签和css样式 可能包含展示和容器组件,并且不会有D ...
- VUE+webpack+npm项目中的RSA加解密
一.安装jsencrypt npm i jsencrypt node_modules文件夹中出现jsencrypt 二.引入jsencrypt 在main.js中import: import JsEn ...
- 判断decimal 是否为整数
用了半个小时搞懂了这个问题,基础愁死我了! private static boolean isIntegerValue(BigDecimal decimalVal) { return decimalV ...
- 了解Scala反射
本篇文章主要让大家理解什么是Scala的反射, 以及反射的分类, 反射的一些术语概念和一些简单的反射例子. 什么是反射 我们知道, Scala是基于JVM的语言, Scala编译器会将Scala代码编 ...
- Shell中去除字符串前后空格的方法
[root@local ~]# echo " A BC " A BC [root@local ~]# eval echo " A BC " A BC 或者 [r ...
- 数据结构与算法(十):红黑树与TreeMap详细解析
本文目录 一.为什么要创建红黑树这种数据结构 在上篇我们了解了AVL树,既然已经有了AVL这种平衡的二叉排序树,为什么还要有红黑树呢? AVL树通过定义我们知道要求树中每一个结点的左右子树高度差的绝对 ...
- maven 依赖中scope标签的配置范围详解
在创建Maven项目时,需要在pom.xml 文件中添加相应的依赖,其中有一个scope标签,该标签是设置该依赖范围 (maven项目包含三种classpath{编译classpath,测试class ...
- mysql 多实例部署
Centos7.6 部署3个Mariadb 实例 [root@localhost ~]# yum install mariadb-server -y # 创建对应的目录文件 [root@localho ...