-
StackOverflow 文档
-
Entity Framework Core 教程
-
EF Core 与 EF6.x
-
并排比较
下表对 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。