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 中使用实体框架创建大纲/细节窗口以进行数据访问。 |
EF学习 开始操作02的更多相关文章
- EF学习笔记(十二):EF高级应用场景
学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十一):实施继承 本篇原文链接:Advanced Entity Framework Scenari ...
- EF学习笔记(十一):实施继承
学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十) 处理并发 本篇原文链接:Implementing Inheritance 面向对象的世界里, ...
- EF学习笔记(十) 处理并发
总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(九):异步处理和存储过程 本篇原文链接:Handling Concurrency Concurrency ...
- EF学习笔记(九):异步处理和存储过程
总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(八):更新关联数据 本篇原文:Async and Stored Procedures 为何要采用异步? ...
- EF学习笔记(八):更新关联数据
学习笔记主目录链接:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇链接:EF学习笔记(七):读取关联数据 本篇原文链接:Updating Related Data 本篇主要考 ...
- 关于有默认值的字段在用EF做插入操作时的思考(续)
问题描述 今天下午(看现在这时间,应该是昨天下午了哈),园友 choon 写了这样一篇博文<关于有默认值的字段在用EF做插入操作时的思考>. 博文内容主要记录的是 choon 使用 EF ...
- 关于有默认值的字段在用EF做插入操作时的思考
今天在用EF做插入操作的时候发现数据库中一个datetime类型的字段(CreateDate)的值居然全部为null.于是赶紧看表结构发现CreateDate字段居然是允许为空的. 虽然为空,但是设置 ...
- 4-python学习——数据操作
4-python学习--数据操作 参考python类型转换.数值操作(收藏) Python基本运算符 数据类型转换: 有时候,可能需要执行的内置类型之间的转换.类型之间的转换,只需使用类名作为函数. ...
- 强化学习读书笔记 - 02 - 多臂老O虎O机问题
# 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...
随机推荐
- 微信支付v3开发(6) 收货地址共享接口
请看新版教程 微信支付开发(7) 收货地址共享接口V2 本文介绍微信支付下的收货地址共享接口的开发过程. 一. 简单介绍 微信收货地址共享,是指用户在微信浏览器内打开网页,填写过地址后,兴许能够免填 ...
- Centos7 install RabbitMQ
安装rabbitmq 需要环境上有erlang,没有安装的可以参照下面的内容进行安装: https://www.erlang-solutions.com/resources/download.html ...
- 11 Memcached 缓存雪崩现象
一:Memcached 缓存雪崩现象(1)造成原因:一般是由某个节点失效,导致其他的节点的缓存命中率下降,缓存中缺失的数据查询,短时间内造成的数据库服务器奔溃.重启DB,短期内又被压垮,但缓存的数据增 ...
- Android Studio导入eclipse工程(引用多个其它工程)
eclipse工程向android studio 迁移过程中需要到编译错误: eclipse工程的结构比较复杂,引用了其它的工程,在迁移的过程中遇到了错误. @ViewInject(R.id.edit ...
- SimpleAdapter的用法
学习listView的时候,按照例子设定item的布局为系统提供的simple_list_item_single_choice.xml@frameworks/base/core/res/res/lay ...
- mysql 与mongodb的特点与优劣
首先我们来分析下mysql 与mongodb的特点与优劣.下面是我以前做的ppt的部分截图. 再来分析下应用场景,a.如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mon ...
- 动态创建Lambda表达式实现高级查询
需求简介 最近这几天做的东西总算是回归咱的老本行了,给投资管理项目做一个台账的东西,就是类似我们的报表.其 中有一个功能是一个高级查询的需求,在查询条件方面大概有7.8个查询条件.需求就是如果一个条件 ...
- python模块, 包的初识
Python 模块(Module), 是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代 ...
- Pell方程(求形如x*x-d*y*y=1的通解。)
佩尔方程x*x-d*y*y=1,当d不为完全平方数时,有无数个解,并且知道一个解可以推其他解. 如果d为完全平方数时,可知佩尔方程无解. 假设(x0,y0)是最小正整数解. 则: xn=xn-1*x0 ...
- 【BZOJ2460】[BeiJing2011]元素 贪心+高斯消元求线性基
[BZOJ2460][BeiJing2011]元素 Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法 ...