。
- 支持多种数据库 MSSQL ,MySQL,SQLite,InMemory
- 支持linq查询
- 支持反向工程,可以将数据库的架构和EFCore模型进行同步
- 支持迁移,EFCore模型的更改可以通过迁移到同步到数据库架构中
- 支持日志记录、事件和诊断
- 支持使用原生的sql语句进行数据操作,类似半自动ORM
Entity Framework Core是用于.NET Core应用程序的Entity Framework的新版本和改进版本。EF
Core是新的,因此仍不如EF 6成熟。
EF Core继续支持与EF 6相同的以下功能和概念。
- DbContext和DbSet 资料模型
- 使用Linq-to-Entities查询
- 变更追踪
- 保存更改
- 移居
EF Core将逐步包括EF 6的大多数功能。但是,EF Core 2.0中不支持EF 6的某些功能,例如:
- EDMX /模型的图形可视化
- 实体数据模型向导(用于数据库优先方法)
- ObjectContext API 使用实体SQL查询。
- 自动迁移
- 继承:每种类型的表格(TPT)
- 继承:每个具体类的表(TPC)
- 不加入实体的多对多 实体分割
- 空间数据
- 延迟加载相关数据
- 使用DbContext进行存储过程映射以进行CUD操作
- 种子数据
- 自动迁移
EF Core包含EF 6.x不支持的以下新功能:
- 轻松的关系配置
- 批处理INSERT,UPDATE和DELETE操作
- 内存提供者进行测试
- 支持IoC(控制反转)
- 独特的约束
- 阴影属性
- 备用键
- 全局查询过滤器
- 场图
- dbContext池
- 处理断开实体图的更好模式。
实体框架核心使用提供程序模型来访问许多不同的数据库。EF Core将提供程序包括为您需要安装的NuGet软件包。
下表列出了EF Core的数据库提供程序和NuGet程序包。
数据库 | Nuget程序包 |
---|---|
SQL Server | Microsoft.EntityFrameworkCore.SqlServer |
MySQL | MySql.Data.EntityFrameworkCore(官方版,不建议使用) |
MySQL | Pomelo.EntityFrameworkCore(第三方提供,Bug少建议使用) |
PostgreSQL | Npgsql.EntityFrameworkCore.PostgreSQL |
SQLite | Microsoft.EntityFrameworkCore.SQLite |
SQL Compact | Microsoft.EntityFrameworkCore.SQLite |
In-memory | Microsoft.EntityFrameworkCore.InMemory |
Note:
1、SQL Compact 是小型压缩型嵌入式数据库
2、In-memory,内存数据库