Entityframework Core in action是 Jon P smith
所著的关于Entityframework Core 书籍。原版地址. 是除了官方文档外另外一个学习EF Core的不错途径, 书中由浅入深的讲解的EF Core的相关知识。由于没有中文版,因此本人对其进行翻译。 预计每两天一篇更新 PS: 翻译不免限于本人水平有不许确的地方,建议英文水平不错的同窗直接查看原版,有不足的地方欢迎指正html
EF Core能够用做O/RM, 它在关系型数据库和包含类与软件代码的.NET软件之间进行映射. 表1.1展现了EF Core如何映射关系型数据库和.NET软件数据库
编写一个优秀的O/RM很复杂的,尽管EF6.x或EF Core很容易使用,但有时EF Core的"魔法"会让你大吃一惊(surprise -.-),在咱们深刻了解EF Core的工做原理以前,我须要先提一下两个须要注意的问题服务器
第一个问题是对象关系抗阻不匹配. 数据库服务器和面向对象的软件使用了不一样的规则: 数据库使用主键来定义行是惟一的,而.Net类实例的引用在默认状况下被认为是惟一的. EF Core会为你处理大部份内容,可是你的.Net类会被这些键(主键)"污染",它们的值很重要.虽然大多数状况下EF Core均可以很好的处理,但有时你不得不作一些与纯软件解决方案不一样的处理方式.你会在第2章看到一个多对多关系的例子:在C#中很容易,但在数据库中须要多作一些处理并发
第二个问题是O/RM(尤为是EF Core这样全面的O/RM)将数据库隐藏的深,以致于你有时会忘记数据库中会发生什么,这可能会致使你编写的代码在测试应用中没有什么问题,可是来到了实际的生产环境,当数据库很复杂而且有不少并发用户时,执行的效率会很低下性能
这就是为何我会花时间在本章中展现EF Core的工做原理以及它生成的SQL. 对EF Core了解的更多,就越可以编写更好的EF Core代码,更重要的是当出现问题时知道怎么分析学习
注: 在本书中,我使用 "让EF Core正常工做,但若是我须要,会让它的性能变的更快"的方法来使用EF Core.EF Core让咱们快速开发,但因为EF Core的缺陷或我对它的不良使用致使了数据库访问代码的性能不足以知足特定业务需求. 第5章介绍了如何隔离EF Core在最小的代价下对其优化,第13章介绍了如何查找和改进性能低下的数据库访问代码测试