- EF Core 1.0 中包含的功能Features included in EF Core 1.0
- 平台Platforms
- 建模Modelling
- 基本建模Basic modelling
- 关系和导航属性Relationships and navigation properties
- 内置约定Built-in conventions
- Fluent APIFluent API
- 数据注释Data annotations
- 关系表映射Relational Table mapping
- 键值生成Key value generation
- 数据库生成的值Database generated values
- SQL Server 中的序列Sequences in SQL Server
- 唯一约束Unique constraints
- 索引Indexes
- 阴影状态属性Shadow state properties
- “每个层次结构一张表”继承模式Table-Per-Hierarchy inheritance pattern
- 模型验证Model validation
- 更改跟踪Change tracking
- 保存数据Saving data
- 查询Query
- 数据库架构管理Database schema management
- 数据库提供程序Database providers
EF Core 1.0 中包含的功能Features included in EF Core 1.0
平台Platforms
.NET Framework 4.5.1.NET Framework 4.5.1
包括控制台、WPF、WinForms、ASP.NET 4 等。
.NET Standard 1.3.NET Standard 1.3
包括面向 Windows、OSX 和 Linux 上的 .NET Framework 和 .NET Core 的 ASP.NET Core。
建模Modelling
基本建模Basic modelling
基于具有常用标量类型(int
、string
等)的 get/set 属性的 POCO 实体。
关系和导航属性Relationships and navigation properties
可以在模型中根据外键指定一对多和一对零或一对一关系。 简单集合或引用类型的导航属性可以与这些关系相关联。
内置约定Built-in conventions
这些约定基于实体类的形状构建初始模型。
Fluent APIFluent API
允许覆盖上下文中的 OnModelCreating
方法,以进一步配置按约定发现的模型。
数据注释Data annotations
可添加到实体类/属性并影响 EF 模型的属性。 例如,[Required]
将告知 EF 某个属性是必需的。
关系表映射Relational Table mapping
允许实体映射到表/列。
键值生成Key value generation
包括客户端生成和数据库生成。
数据库生成的值Database generated values
允许在插入(默认值)或更新(计算列)时由数据库生成值。
SQL Server 中的序列Sequences in SQL Server
允许在模型中定义序列对象。
唯一约束Unique constraints
允许定义备用键以及面向该键的关系的功能。
索引Indexes
在模型中定义索引会自动在数据库中引入索引。 此外,还支持唯一索引。
阴影状态属性Shadow state properties
允许在未在 .NET 类中声明和存储的模型中定义属性,但可以由 EF Core 进行跟踪和更新。 不需要在对象中公开这些属性时,通常用于外键属性。
“每个层次结构一张表”继承模式Table-Per-Hierarchy inheritance pattern
允许将继承层次结构中的实体使用鉴别器列保存到单个表中,以在数据库中针对给定记录标识实体类型。
模型验证Model validation
检测模型中的无效模式并提供有用的错误消息。
更改跟踪Change tracking
快照更改跟踪Snapshot change tracking
通过将当前状态与原始状态的副本(快照)进行比较,可以自动检测实体中的更改。
通知更改追踪Notification change tracking
修改属性值后,允许实体通知更改跟踪器。
访问跟踪的状态Accessing tracked state
通过 DbContext.Entry
和 DbContext.ChangeTracker
。
附加分离的实体/图Attaching detached entities/graphs
新的 DbContext.AttachGraph
API 有助于将实体重新附加到上下文,以保存新的/修改的实体。
保存数据Saving data
基本保存功能Basic save functionality
允许将对实体实例的更改持久保存到数据库。
乐观并发Optimistic Concurrency
防止由于从数据库中提取数据而覆盖其他用户所做的更改。
异步 SaveChangesAsync SaveChanges
在数据库处理从 SaveChanges
发出的命令时,可以释放当前线程以处理其他请求。
数据库事务Database Transactions
表示 SaveChanges
始终是原子(意味着它或者完全成功,或者不对数据库进行更改)。 还存在事务相关的 API,允许在上下文实例之间共享事务等。
关系:批处理语句Relational: Batching of statements
通过将多个 INSERT/UPDATE/DELETE 命令批量放到数据库的单个往返路线中来提供更好的性能。
查询Query
基本 LINQ 支持Basic LINQ support
提供使用 LINQ 从数据库检索数据的功能。
混合客户端/服务器评估Mixed client/server evaluation
使查询能够包含无法在数据库中评估的逻辑,因此,必须在将数据检索到内存后进行评估。
NoTrackingNoTracking
如果上下文无需监视实体实例的变化,可加快查询执行速度(在结果只读的情况下非常有用)。
预先加载Eager loading
提供 Include
和 ThenInclude
方法来标识在查询时也应提取的相关数据。
异步查询Async query
当数据库处理查询时,可以释放当前线程(及其相关资源)以处理其他请求。
原始 SQL 查询Raw SQL queries
提供 DbSet.FromSql
方法以使用原始 SQL 查询提取数据。 也可以使用 LINQ 编写这些查询。
数据库架构管理Database schema management
数据库创建/删除 APIDatabase creation/deletion APIs
多数旨在测试你希望在不使用迁移的情况下快速创建/删除数据库的位置。
关系数据库迁移Relational database migrations
允许关系数据库架构随模型更改而演进。
从数据库反向工程Reverse engineer from database
基于现有关系数据库架构搭建 EF 模型基架。
数据库提供程序Database providers
SQL ServerSQL Server
连接到 Microsoft SQL Server 2008 及以上版本。
SQLiteSQLite
连接到 SQLite 3 数据库。
内存中In-Memory
旨在实现无需连接到真实的数据库即可轻松启用测试。
第三方提供程序3rd party providers
多个提供程序可用于其他数据库引擎。 有关完整的列表,请参阅数据库提供程序。