ADO.NET Entity Framework使用实体数据
实体框架 将一组概念性架构和存储架构连同它们之间的映射一起编译为称为“客户端视图”的双向 Entity SQL 语句对。这些视图驱动运行时引擎中的查询和更新处理。可以在设计时或运行时(在对 实体数据模型 (EDM) 架构第一次执行查询时)调用生成视图的映射编译器。
实体框架 通过提供到基础数据提供程序和关系数据库的
执行查询时,查询将被解析并转换为规范命令目录树,规范命令目录树是查询的对象模型表示形式。规范命令目录树表示选择、更新、插入和删除命令。所有后续处理将在命令目录树上执行,命令目录树是
下图演示用于访问数据的 Entity Framework 体系结构:
查询对象
实体框架 工具生成从
在概念性模型中,实体通过关联来相互相关。在对象层,这些关联由基于实体引用公开相关对象集合的属性来表示。例如,在 School 模型中,Department.Course 基于 Course 和 Department 之间的关联来获取 Course 对象的实体集合。由于被引用的对象不会自动加载,因此必须对实体引用调用
下面摘自
| Visual Basic | 复制代码 |
|---|---|
' Define a query that returns all Department objects and related
' Course objects, ordered by name.
Dim departmentQuery As ObjectQuery(Of Department) = _
schoolContext.Department.Include("Course").OrderBy("it.Name")
| |
| C# | 复制代码 |
|---|---|
// Define a query that returns all Department objects and related
// Course objects, ordered by name.
ObjectQuery<Department> departmentQuery =
schoolContext.Department.Include("Course").OrderBy("it.Name");
| |
有关更多信息,请参见
可以定义一个 EDM,使之使用存储过程对数据源执行查询。从这些存储过程得到的结果集将映射到概念性模型中的实体。有关更多信息,请参见
使用对象
对象上下文中的对象是数据源中的数据的实体类型表示形式。可以修改、创建和删除对象上下文中的对象。对象上下文管理标识以及各对象之间的关系。还可以序列化对象以及将对象绑定到控件。有关更多信息,请参见
下面的示例摘自
| Visual Basic | 复制代码 |
|---|---|
' Get the object for the selected department.
Dim department As Department = _
CType(Me.departmentList.SelectedItem, Department)
' Bind the grid view to the collection of Course objects
' that are related to the selected Department object.
courseGridView.DataSource = department.Course
| |
| C# | 复制代码 |
|---|---|
// Get the object for the selected department.
Department department =
(Department)this.departmentList.SelectedItem;
// Bind the grid view to the collection of Course objects
// that are related to the selected Department object.
courseGridView.DataSource = department.Course;
| |
Entity Framework 跟踪实体数据的更改,并使您能将更改持久保存回数据源。在下面摘自
| Visual Basic | 复制代码 |
|---|---|
' Save object changes to the database, display a message, ' and refresh the form. numChanges = schoolContext.SaveChanges() | |
| C# | 复制代码 |
|---|---|
// Save object changes to the database, display a message, // and refresh the form. numChanges = schoolContext.SaveChanges(); | |
有关更多信息,请参见
可以定义一个 EDM,使之使用存储过程在数据源中插入、更新和删除数据。这些存储过程将映射到概念性模型中的实体。有关更多信息,请参见

复制代码
浙公网安备 33010602011771号