EF Core教程:从EF6到EFCore的移植与比较
"EF Core.pdf" 本文档是关于Entity Framework (EF) 的详细教程,特别是针对EF Core和EF6的对比以及如何进行迁移。Entity Framework是微软提供的一个开源的对象关系映射框架,它允许开发者以面向对象的方式操作数据库,而无需编写大量的SQL语句。 ### EFCore和EF6的比较 EF Core是EF6的现代化重构版本,具有更轻量级、模块化和跨平台的特点。相比EF6,EF Core提供了更好的性能和更高的可扩展性。EF Core适用于新的.NET Core和.NET Standard项目,而EF6则更适合.NET Framework的传统应用。 #### 移植 - **基于EDMX的模型**:如果你的应用使用了EDMX文件来定义模型,移植可能涉及将模型转换为Code First方法,因为EF Core不再支持EDMX。 - **基于Code的模型**:对于使用Code First的项目,移植主要是更新NuGet包和适配API变化。 ### EFCore概述 - **安装**:通过NuGet包管理器可以方便地安装EF Core。 - **第一个应用**:通常从创建DbContext开始,定义实体类和它们之间的关系。 - **版本和规划**:EF Core有明确的版本规划和路线图,包括每个版本的新增功能和重大更改。 ### 查询数据 - **查询操作**:包括客户端评估、跟踪与不跟踪查询、预加载、显式加载、延迟加载等。 - **复杂查询**:支持原始SQL查询、数据库函数、用户定义的函数映射、全局查询筛选器等。 - **查询优化**:如拆分查询以减少数据库往返,处理null值比较,理解查询的工作原理以提高性能。 ### 保存数据 - **基本保存**:通过DbContext的SaveChanges方法保存实体的更改。 - **相关数据**:处理一对多、多对一、多对多关系的保存,以及级联删除。 - **并发冲突**:通过并发标记(如乐观并发)解决多个用户同时编辑同一数据时的冲突。 - **事务**:在需要确保一组操作原子性的场景下,可以使用事务来保证数据一致性。 ### 更改跟踪 - **追踪实体**:DbContext自动跟踪实体的状态,如添加、修改和删除。 - **更改检测**:通过属性变更或实体状态更改触发数据库更新。 - **断开连接的实体**:在非持久会话中处理实体,可能需要手动管理状态。 ### 日志记录、事件和诊断 - **日志记录**:支持多种日志框架,如Microsoft.Extensions.Logging,用于记录EF Core执行的操作。 - **事件**:通过监听DbContext事件来扩展行为,例如BeforeSave和AfterSave事件。 - **诊断**:使用事件侦听器和事件计数器进行性能监控和问题诊断。 ### 测试 - **测试策略**:提供了专门的测试工具和策略,以确保使用EF Core的代码能够在测试环境中正确运行。 EF Core提供了丰富的功能和灵活性,适用于各种.NET开发场景,无论是新项目还是旧项目的迁移,都能找到合适的方法来利用其优势。
![](https://csdnimg.cn/release/download_crawler_static/15761240/bg10.jpg)
![](https://csdnimg.cn/release/download_crawler_static/15761240/bg11.jpg)
![](https://csdnimg.cn/release/download_crawler_static/15761240/bg12.jpg)
![](https://csdnimg.cn/release/download_crawler_static/15761240/bg13.jpg)
![](https://csdnimg.cn/release/download_crawler_static/15761240/bg14.jpg)
剩余1165页未读,继续阅读
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/b460cc3e5ccc4327ad2848ea17458d5b_haibao1755762700.jpg!1)
- 粉丝: 0
- 资源: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 中国微型数字传声器:技术革新与市场前景
- 智能安防:基于Hi3515的嵌入式云台控制系统设计
- 手机电量低时辐射真增千倍?解析手机使用谣言
- 56F803型DSP驱动的高精度大功率超声波电源控制策略研究
- ARM与GPRS结合的远程监测系统设计
- GPS与RFID技术结合的智能巡检系统设计
- CPLD驱动的低功耗爆炸场温度测试系统设计
- 基于FPGA的智能驱动控制系统:可扩展设计与工业网络协议
- 基于ATmega128和CH374的嵌入式USB接口设计
- 基于AT89C52的温度补偿超声波测距仪:高精度设计与应用
- MSP430F448单片机在交流数字电压表中的应用
- 提升变频器应用效率的12项实用技巧
- STM32F103在数字电镀电源并联均流系统中的应用
- PSpice仿真下的升压开关电源设计:拓扑分析与CCM稳定性提升
- 轻巧高效:MSP430主导的低成本无线传感器网络节点设计
- FPGA在EDA/PLD中实现LVDS接口的应用解析
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)