.NETCore EF详解:从EF6到EFCore的移植与新特性
需积分: 10 156 浏览量
更新于2024-07-18
收藏 7.36MB PDF 举报
".netCore EF" 是一个关于Entity Framework (EF) 在 .NET Core 平台上的使用指南,其中包含了详细的对比分析、移植方法、新功能介绍、版本更新历史以及全面的开发入门教程。这份PDF文档特别强调了从EF6向EFCore的迁移过程,并提供了在不同.NET框架和平台上安装及使用的步骤。它还涵盖了数据库建模、迁移管理、数据查询和保存、以及各种扩展和工具的使用。
Entity Framework (EF) 是Microsoft开发的一个对象关系映射(ORM)框架,它允许开发者使用面向对象的编程语言(如C#)来处理数据库操作,而无需过多关注底层的SQL语法。EFCore是其在.NET Core上的轻量级、高性能版本,支持跨平台应用开发。
**比较EFCore和EF6:**
- EFCore是针对.NET Core设计的,支持多平台(Windows、macOS、Linux),而EF6仅限于.NET Framework。
- EFCore相比EF6更轻量级,启动速度更快,但EF6可能在某些特定功能上更为成熟。
- EFCore强调模块化和可扩展性,允许开发者选择需要的功能,而EF6包含更多预封装的功能。
**移植要求:**
- 移植过程中需考虑功能兼容性,部分在EF6中的特性可能在EFCore中尚未实现。
- 对于基于EDMX的模型,需要转换为代码第一(Code First)方法。
- 基于Code的模型移植通常涉及更新API调用和依赖项。
**EntityFrameworkCore的新功能:**
- EFCore支持更多的数据库提供商,包括SQLite、PostgreSQL、MySQL等。
- 引入了阴影属性,允许在不修改实体类的情况下存储额外数据。
- 引入了值转换,可以将数据库类型与.NET类型之间进行转换。
- 支持数据种子设定,方便初始化数据库数据。
**数据库建模:**
- 包括表映射、列映射、数据类型、主键、默认架构、索引等概念,允许开发者自定义数据库结构。
- 继承支持使得单表继承策略(Table per Hierarchy, TPH)和多表继承策略(Table per Type, TPT)得以实现。
- 使用迁移管理数据库架构变更,确保代码和数据库同步。
**查询数据:**
- 提供基本查询、加载相关数据、原始SQL查询、异步查询等,支持Linq表达式和客户端/服务器评估。
- 全局查询筛选器允许设置默认过滤条件。
**保存数据:**
- 基本保存、级联删除、并发冲突处理和事务支持保证了数据的完整性和一致性。
- 异步保存提高了性能,尤其是在处理大量数据时。
**支持的.NET实现和数据库提供程序:**
- 支持多种.NET实现,包括.NET Framework和.NET Core。
- 提供多种数据库提供商,如Microsoft SQL Server、SQLite、InMemory等,适用于不同场景。
**工具和扩展:**
- 包括命令行参考、包管理器控制台和.NET Core CLI工具,便于开发和管理。
- 设计时DbContext创建和设计时服务允许在编译时检查和操作模型。
**测试:**
- 提供了使用SQLite和InMemory数据库进行测试的方法,简化测试环境的搭建。
.netCore EF 是一份全面的指南,无论是对于初次接触EFCore的开发者还是希望从EF6迁移的开发者,都能从中获得宝贵的信息和实践指导。
2019-03-07 上传
2019-09-26 上传
2018-03-20 上传
2022-05-19 上传
2019-01-28 上传
2017-12-15 上传
2024-12-25 上传
2024-12-25 上传
huangchao2011
- 粉丝: 2
- 资源: 17
最新资源
- Tramwrecked:C#中的控制台应用程序文本冒险
- labview截取屏幕位置、移动程序位置、控制鼠标点击位置代码
- issue-tracker:W3C webperf 问题跟踪器
- 429108.github.io
- webpage-6
- Szoftver公开
- AIJIdevtools-1.4.1-py3-none-any.whl.zip
- Extended Java WordNet Library:extJWNL是一个Java库,用于处理WordNet格式的词典。-开源
- starting-requirejs:了解更多关于 RequireJS
- DATASCIENCE_PROJECTS:我所有的数据科学著作
- AIOrqlite-0.1.1-py3-none-any.whl.zip
- Bibliotheque_binome-
- deep-dive-craps-android
- PS_Library_cpp:PS的库。 C ++版本
- pashiri-hubot:一个hubot脚本,通过提到hubot随机决定购买谁
- [008]vc_串口通讯.zip上位机开发VC串口学习资料源码下载