此文章完全根据微软官方文档,经过我自己的翻译而来。若有不准确之处,敬请指导。
EF框架提供了一些列面向数据(data-oriented)的软件应用技术。EF框架使得程序员以特定域内的对象和属性的方式操作数据,例如 customers 和 customer addresses,完全不用关心它们在数据库表和列架构中是如何存储的。有了EF框架,开发者能以高度抽象的方式操作数据,与传统开发相比,它能够以最少的代码生成和维护 data-oriented 的应用。
EF框架是一个对象-关系映射器(object-relational mapper, ORM),它降低了.NET 框架中面向对象和关系型数据库的不匹配。 EF使得开发者主要同APP的概念模型(conceptual model)打交道,通过使用熟悉的面向对象技术。在EF框架中,你可以使用在特定作用域中的对象和属性,例如 custormers 和 customer addresses, 而完全不用考虑下层的用于持久化数据的数据库的表和列。开发者可以直接依靠于概念模型(conceptual model)来处理数据介入(data access),EF框架负责翻译这些操作为关系的数据库的行为。
在EF框架应用中,主要有两层:
- 模型层 (The modeling layer)
- 对象层 (The object layer)
其中,模型层包括三个组件:
1. 概念模型。包括特性域的视图类型和关系,它们是基于EDM(Entity Data Model )的 。
2. 数据库存储层。 一个数据库架构(schema)来定义数据库表和关系。
3. 1和2层间的映射。概念模型和数据库架构间的映射组件。
EF 用映射组件(mapping component)将依赖于实体对象的操作,例如,创建(create),读取(read),更新(update),删除(delete),简称为(CRUD),转化为等同于数据库中的操作。
EF**对象层**(object layer)包括类型化的CLR对象(common language runtime),它发射定义在概念模型中的实体(Entities)和关系(relationships)。这些对象能被程序语言辨识。类型的准确格式是由你提供给EF的配置控制的。
EF的对象层(object layer)让你能做如下事:
- 依靠概念模型进行查询操作;
- 具体化从以Objects的数据源返回的数据;
- 追踪对象的改变;
- 传播对象的改变再次返回到数据源;
- 绑定对象到控件。