今天来讲解一下 .NET 中的重要成员 Entity Framework Core。Entity Framework Core (以下简称 EF Core),是 EF6 之后微软推出的开源的轻量级可扩展跨平台 ORM 框架。 EF Core 需要和 .NET Core 应用程序一起使用,并且需要 .NET 4.5+ 版本。下面列举一下 EF Core 所支持的项目类型:

  • 运行在 .NET Core 平台上的 Asp.Net Core MVC/Web Api、Console、etc ;
  • 运行在 .NET 4.5+ 版本上的 ASP.NET MVC/Web Api 、WinForm、Console、WinForm、WPF ;
  • UWP 平台相关的应用 ;
  • 安卓、IOS、Windows 移动平台上运行的应用。
零、EF Core 开发方法

EF Core 只支持两种开发方式 Code FirstDatabase First,在 EF Core 2.0 开始不支持数据库模型的可视化设计器以及数据库设计导航。在 Code First 方法中, EF Core API 使用基于 domain classes 中提供的约定和配置的迁移来创建数据库和表,这种方法在 DDD 中很有用。如果你习惯于 Database First ,那么你可以使用 EF Core 命令基于现有的数据库创建 domain classes 和上下文类,但是这种方法支持有限,因为 EF Core 2+ 版本 不再支持可视化设计器和设计导航。

一、EF Core 与 EF6

这里列一下 EF Core 目前所具有的 EF6 的功能

  1. DbContext ;
  2. DbSet ;
  3. Data Model ;
  4. 使用Linq-to-Entities查询 ;
  5. 变更跟踪 ;
  6. 保存更改 ;
  7. 迁移 。

以下是 EF Core 目前所不具有的 EF6 的功能

  1. EDMX /模型的图形可视化 ;
  2. 实体数据模型向导 ;
  3. ObjectContext API ;
  4. 使用Entity SQL查询 ;
  5. 自动迁移 ;
  6. TPT ;
  7. TPC ;
  8. 多对多关系 ;
  9. Entity Splitting ;
  10. Spatial Data ;
  11. 延迟加载 ;
  12. 使用DbContext进行存储过程映射以进行CUD操作 ;
  13. 种子数据 ;
  14. 自动迁移 。

EF Core 具有如下新功能

  1. 简单的关系配置
  2. 批量INSERT,UPDATE和DELETE操作
  3. 用于测试的内存提供程序
  4. 支持IoC(控制反转)
  5. 独特的约束
  6. 阴影属性
  7. Alternate keys
  8. 全局查询过滤器
  9. Field mapping
  10. DbContext池
  11. 用于处理断开的实体图的更好模式
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐