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 in Action 关于这本书的更多相关文章

  1. [翻译 EF Core in Action 2.1] 设置一个图书销售网站的场景

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  2. [翻译 EF Core in Action 1.10] 应该在项目中使用EF Core吗?

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  3. [翻译 EF Core in Action 1.11] 何时不应该使用EF Core

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  4. [翻译 EF Core in Action 1.9] 掀开EF Core的引擎盖看看EF Core内部是如何工作的

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  5. [翻译 EF Core in Action 1.8] MyFirstEfCoreApp应用程序设置

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  6. [翻译 EF Core in Action 1.7] MyFirstEfCoreApp访问的数据库

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  7. [翻译 EF Core in Action 1.6]你的第一个EF Core应用程序

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  8. [翻译 EF Core in Action] 1.5 关于NoSql

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  9. [翻译 EF Core in Action 2.4] 加载相关数据

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

随机推荐

  1. ZOJ_2314_Reactor Cooling_有上下界可行流模板

    ZOJ_2314_Reactor Cooling_有上下界可行流模板 The terrorist group leaded by a well known international terroris ...

  2. BZOJ_1208_[HNOI2004]宠物收养所_SPLAY

    BZOJ_1208_[HNOI2004]宠物收养所_SPLAY Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望 ...

  3. Security - 轻量级Java身份认证、访问控制安全框架

    前言 此框架由小菜独立开发,并且已经在生产环境中运行大约一年时间. 也就是说,Security 框架写出来有一段时间了,但是一直没有公布.开源,经过不断迭代完善,终于算是拿得出手啦~ Security ...

  4. 深入解读Service Mesh的数据面Envoy

    在前面的一篇文章中,详细解读了Service Mesh中的技术细节,深入解读Service Mesh背后的技术细节. 但是对于数据面的关键组件Envoy没有详细解读,这篇文章补上. 一.Envoy的工 ...

  5. Hugo + Github Pages 搭建个人博客

    尝试过 Hexo .GatsbyJs. Vuepress 搭建博客后,对这些工具最大的不满,就是运行速度以及打包速度. 后来看到 Hugo ,号称最快的静态站点生成器后. 尝试搭建博客,发现不管是运行 ...

  6. 死磕 java集合之LinkedBlockingQueue源码分析

    问题 (1)LinkedBlockingQueue的实现方式? (2)LinkedBlockingQueue是有界的还是无界的队列? (3)LinkedBlockingQueue相比ArrayBloc ...

  7. Android项目中独立Git项目分库后的编译调试时Gradle的配置

    基于AS开发项目,对于特定的功能模块,往往抽取成独立的库进行管理,然后上传到Marven库中,通过Gradle依赖的方式进行引用. 其优势体现在: 1,独立的Git项目库,模块功能,及职责界定清晰: ...

  8. 01 Java jdk环境配置

    1.1 书籍(B) [1] java核心技术 [2] 实战java 1.2 网址(B) oracle.com http://www.ibm.com/developerWorks/cn/ https:/ ...

  9. 正向代理&反向代理 简(fu)明(za)解释

    最近写的东西越来越偏向Web程序员了··· 你想读懂本篇,就要知道什么是Web服务器——装在世界上某个机房里某台机器里某个操作系统里的一个,对外(公网或者你能访问)服务各种你需要的信息的软件! 它可以 ...

  10. Ntaub表单开发入门系列 (一)

    此系列文章通过虚构场景介绍Ntaub表格开发流程.示例假设某公司人力部门要制定招聘计划,要求各部门按月提交招聘需求,招聘需求需经人力总监和公司总经理审批. 软件可以从http://www.ntaub. ...