并排比较

下表对 EF Core 和 EF6.x 中可用的功能(1)进行了比较。

它旨在提供高级别比较,并未列出每个功能,或尝试详细说明相同功能的工作方式之间可能存在的差异。

创建模型 EF6.x EF Core 1.0.0
基本建模(类,属性等)
约定
自定义约定 局部
数据注释
流畅的 API
继承:每个层次结构的表(TPH)
继承:每种类型的表(TPT)
继承:每个具体类的表(TPC)
阴影状态属性
备用键
多对多:使用 join 实体
多对多:没有连接实体
密钥生成:数据库
密钥生成:客户端
复杂/价值类型
空间数据
模型的图形可视化
图形拖放编辑器
型号格式:代码
型号格式:EDMX(XML)
从数据库反向工程模型:命令行
从数据库反向工程模型:VS 向导
数据库中的增量更新模型
查询数据 EF6.x EF Core 1.0.0
LINQ:简单的查询 稳定 稳定
LINQ:中等查询 稳定 稳定
LINQ:复杂的查询 稳定 进行中
LINQ:使用导航属性查询 稳定 进行中
漂亮的 SQL 生成 较差的
混合客户端/服务器评估
加载相关数据:渴望
加载相关数据:懒惰
加载相关数据:明确
原始 SQL 查询:模型类型
原始 SQL 查询:未映射的类型
原始 SQL 查询:使用 LINQ 进行编写
保存数据 EF6.x EF Core 1.0.0
保存更改
更改跟踪:快照
更改跟踪:通知
访问跟踪状态 局部
乐观并发
交易
批量陈述
存储过程
分离图支持(N-Tier):低级 API 较差的
分离图支持(N-Tier):端到端 较差的
其他特性 EF6.x EF Core 1.0.0
迁移
数据库创建/删除 API
种子数据
连接弹性
生命周期钩子(事件,命令拦截,……)
数据库提供商 EF6.x EF Core 1.0.0
SQL Server
MySQL 只付,未支付即将到来(2)
PostgreSQL
Oracle 只付,未支付即将到来(2)
SQLite
SQL Compact
DB2
InMemory (for testing)
Azure Table Storage 原型
Redis 原型
应用模型 EF6.x EF Core 1.0.0
WinForms
WPF
Console
ASP.NET
ASP.NET Core
Xamarin 即将推出(3)
UWP

脚注:

(1):截至 2016/10/18

(2):付费提供商可用,未付费的提供商正在进行中。从事无偿提供者工作的团队尚未分享时间表等的公开细节。

(3):当在 Xamarin 中启用对 .NET Standard 的支持时,EF Core 可用于 Xamarin。