EF学习 开始操作02
历史版本和未来版本
本文介绍有关实体框架 (EF5) 最新版本的信息,其中大部分内容也适用于旧版本。有关完整版本列表以及各版本引入的功能的详细信息,请参阅 “版本历史”。 “历史版本”页面包含实体框架之前各版本相关文档的快照。 “未来版本”页面包含正在编写的关于实体框架下一版本的文档。
实体框架入门
我该用哪个工作流? 借助实体框架,您可以通过编写代码或使用 EF 设计器中的框和线条来创建模型。无论以现有数据库为目标还是创建新数据库,这两种方法均适用。这一简短视频说明了两者之间的区别,以及如何找到适合您自己的方法。 |
我只想写代码……
我在创建新数据库 使用Code First 用代码来定义模型,然后生成数据库。 |
|
我需要访问现有数据库 使用Code First 创建映射到现有数据库的基于代码的模型。 |
我想用设计器……
我在创建新数据库 使用Model First 用方框和线条来定义模型,然后生成数据库。 |
|
我需要访问现有数据库 使用Database First 创建映射到现有数据库的方框和线条模型。 |
EF5 新增功能
EF5 是实体框架的最新版本。这些短视频和分步骤演示将让您初步了解 EF5 的新功能
Code First 枚举支持 组成 Code First 模型的域类如今可以包含枚举属性,这些属性将映射到数据库。 |
|
EF 设计器枚举支持 使用 EF 设计器如今可以向实体中添加枚举属性。 |
|
Code First 中的空间数据类型 如今可以用新的 DbGeography 和 DbGeometry 类型,在 Code First 模型中对外公开空间数据类型。有关更多信息,请参见 对空间类型的提供程序支持。 |
|
EF 设计器中的空间数据类型 如今可以用新的 DbGeography 和 DbGeometry 类型,在 EF 设计器中使用空间数据类型。有关更多信息,请参见 对空间类型的提供程序支持。 |
|
表值函数 数据库中的表值函数 (TVF) 如今可以与 EF 设计器创建的 Database First 模型共同使用。 |
|
每模型多个图 EF 设计器如今允许使用多幅图对总体模型的下级组成部分进行图形化表示。这样可以将较大模型分解成多个小图。还可以对实体标注颜色,有助于模型各部分的识别。 |
了解有关设置模型的更多信息
我该用哪个工作流 讨论 EF 设计器和 Code First 哪个更适合。 |
连接和模型 了解 EF 如何判断连接到哪个数据库,以及如何进行模型计算。 |
性能注意事项 讨论如何发挥实体框架的最佳性能。 |
使用 Microsoft SQL Azure 在使用 EF 时,需要考虑 SQL Azure 的多个属性. |
实体框架的强大工具 EF 的强大工具对 EF 主流工具中用到的功能提供了预览. |
配置文件的设置项 EF 允许在应用程序配置文件中配置多个设置项。 |
词汇表 在实体框架讨论中经常用到的术语定义。 |
用 Code First 创建模型
这些主题专门讨论使用 EF Code First 创建的模型。
对新数据库使用 Code First 使用 Code First 定义模型,然后生成数据库。 |
对现有数据库使用 Code First 使用 Code First 创建映射到现有数据库的基于代码的模型。 |
约定 讨论 Code First 构建模型所遵循的约定。 |
数据注释 数据注释通过运用类的属性,提供了配置模型的简单方法。 |
Fluent API - 配置/映射属性和类型 了解如何配置属性/类型及其通过 Fluent API 所映射到的列/表。 |
Fluent API - 配置关系 讨论如何配置关系以及通过 Fluent API 映射到的外键约束。 |
Fluent API 用于 VB.NET 本演练展示了在 VB.NET 项目中如何使用 Fluent API。 |
Code First 迁移 如要了解关于升级的更多信息,请下载并用 Code First 迁移创建 SQL 脚本。 |
自动化 Code First 迁移 自动化迁移让您无须在项目中执行基于代码的迁移即可升级数据库。 |
Migrate.exe 使用 migrate.exe 从命令行实现到数据库的迁移。 |
定义 DbSet 讨论在派生的上下文中定义 DbSet 的各种选项。 |
使用 EF 设计器创建模型
这些主题专门讨论使用 EF 设计器创建的模型。
对新数据库使用 EF 设计器(Model First) 通过 Model First 用方框和线条来定义模型,然后生成数据库。 |
对现有数据库使用 EF 设计器(Database First) 用 Database First 创建映射到现有数据库的方框和线条模型。 |
复杂类型 讨论如何将实体的属性组合成复杂类型。 |
关联/关系 了解如何在模型中配置关系。 |
TPT 继承模式 了解如何在模型中实现“每类型一张表”(TPT) 继承模式。 |
TPH 继承模式 了解如何在模型中实现“每个层次结构一张表”(TPH) 继承模式。 |
用存储过程进行查询 用存储过程从数据库中加载数据。 |
返回多个结果集的存储过程 用返回多个结果集的存储过程从数据库中加载数据。 |
用存储过程插入、更新和删除数据 用存储过程插入、更新和删除数据。 |
将实体映射到多个表(实体拆分) 了解如何将一个实体的属性映射到多个表的列。 |
将多个实体映射到一个表(表拆分) 了解如何将一个表的列映射到多个实体中的属性。 |
定义式查询 定义式查询与视图类似,是在模型中而非数据库中定义的。 |
代码生成模板 讨论如何对从模型生成的代码进行定制。 |
恢复为使用 ObjectContext 在 VS2012 中创建的新模型所生成的代码使用 DbContext,但也可以恢复为使用 ObjectContext。 |
EDMX 文件 相关内容涵盖 EDMX 文件属性和 xml 格式规范(包括 CSDL、 SSDL 和 MSL)。 |
了解有关使用模型的更多信息
使用 DbContext 上下文类实例管理指南。 |
查询/找到实体 了解如何用 LINQ 和 Find 方法从数据库中检索数据。 |
使用关系 讨论如何用关系来访问和操作数据。 |
加载相关实体 在加载相关数据时,EF 支持“预先”、“延迟”和“显式”三种加载模式。 |
使用本地数据 访问内存中的实体实例以及 EF 对这些实例的其他跟踪信息。 |
N 层应用程序 了解如何用实体框架来构建 N 层应用程序,包括 自跟踪实体。 |
原始 SQL 查询 讨论如何从直接操作数据库的原始 SQL 查询中加载数据。 |
乐观并发模式 了解在 EF 中处理并发异常的各种策略。 |
使用代理 代理从实体派生而来,并重写其中的虚拟属性,以启用诸如“延迟加载”等功能。 |
自动检测更改 讨论检测更改是指什么,以及何时需要禁用自动检测更改。 |
无跟踪查询 无跟踪查询允许在查询实体时上下文不对查询结果进行跟踪。 |
Load 方法 将实体从数据库加载到上下文中,但并不立即对这些实体做任何操作。 |
添加/附加和实体状态 熟悉了解在断开连接/N 层场景中,如何添加和附加实体以及设置实体状态。 |
使用属性值 讨论如何访问实体实例的当前值、原始值和数据库值。 |
API 文档 介绍有关实体框架中特定的命名空间、类、属性或方法的更多信息。 |
将其他技术应用于 EF
ASP.NET MVC EF 提供了 MVC 中的 M(模型)。本教程从 第 4 章开始使用 EF 进行数据访问。 |
ASP.NET Web API 使用 EF 和 ASP.NET Web API 构建应用到大范围客户端的 HTTP 服务。 |
ASP.NET Web 窗体 讨论如何在 Web 窗体应用程序中使用 EF 进行数据访问。 |
WPF - Windows Presentation Foundation 了解如何在 WPF 中使用实体框架创建大纲/细节窗口以进行数据访问。 |
WinForms - Windows 窗体 了解如何在 WinForms 中使用实体框架创建大纲/细节窗口以进行数据访问。 |