历史版本和未来版本

本文介绍有关实体框架 (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的更多相关文章

  1. EF学习笔记(十二):EF高级应用场景

    学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十一):实施继承 本篇原文链接:Advanced Entity Framework Scenari ...

  2. EF学习笔记(十一):实施继承

    学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十) 处理并发 本篇原文链接:Implementing Inheritance 面向对象的世界里, ...

  3. EF学习笔记(十) 处理并发

    总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(九):异步处理和存储过程 本篇原文链接:Handling Concurrency Concurrency ...

  4. EF学习笔记(九):异步处理和存储过程

    总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(八):更新关联数据 本篇原文:Async and Stored Procedures 为何要采用异步? ...

  5. EF学习笔记(八):更新关联数据

    学习笔记主目录链接:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇链接:EF学习笔记(七):读取关联数据 本篇原文链接:Updating Related Data 本篇主要考 ...

  6. 关于有默认值的字段在用EF做插入操作时的思考(续)

    问题描述 今天下午(看现在这时间,应该是昨天下午了哈),园友 choon 写了这样一篇博文<关于有默认值的字段在用EF做插入操作时的思考>. 博文内容主要记录的是 choon 使用 EF ...

  7. 关于有默认值的字段在用EF做插入操作时的思考

    今天在用EF做插入操作的时候发现数据库中一个datetime类型的字段(CreateDate)的值居然全部为null.于是赶紧看表结构发现CreateDate字段居然是允许为空的. 虽然为空,但是设置 ...

  8. 4-python学习——数据操作

    4-python学习--数据操作 参考python类型转换.数值操作(收藏) Python基本运算符 数据类型转换: 有时候,可能需要执行的内置类型之间的转换.类型之间的转换,只需使用类名作为函数. ...

  9. 强化学习读书笔记 - 02 - 多臂老O虎O机问题

    # 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...

随机推荐

  1. 【PHP】富文本HTML过滤器:HTMLPurifier使用教程(防止XSS)

    在编程开发时安全问题是及其重要的,对于用户提交的数据要进行过滤,XSS就是需要重视的一点,先说一下什么是XSS,简单来说就是用户提交数据(例如发 表评论,发表日志)时往Web页面里插入恶意javasc ...

  2. sublime使用技巧(2)-- 实用插件推荐【持续更新】

    1.Auto semicolon 在括号内输入分号,会自动把光标移到行尾然后再输入分号. 2.DocBlockr 补全注析格式,例如在函数上面输入/** + Enter,就会自动补全函数的注析说明. ...

  3. 08 nginx Location总结图解

  4. vue构建完整项目-以及实现

    简介 由于开发vue项目的时候,需要重新搭建项目的架子,比较麻烦,其实之前做过的项目好多都可以直接拿过来用,比如接下来的这个项目,就可以满足平常的vue单页面开发. 该项目包括了: 全局配置axios ...

  5. Array的push与unshift方法性能比较分析

    从原理就可以知道,unshift的效率是较低的.原因是,它每添加一个元素,都要把现有元素往下移一个位置.但到底效率差异有多大呢?下面来测试一下. 测试环境的主要硬件:CPU T7100(1.8G):内 ...

  6. 关于js语法中的一些难点(预解析,变量提前,作用域)

    ******标题很吓人************ 其实就是一个小小的例子 ,从例子中简单的分析一下作用域.预解析和变量提前的概念 <!DOCTYPE html> <html> & ...

  7. linux授权某个用户对某个目录有读写的权限

    针对特定的某一个用户设置文件或目录权限,用setfacl. 首先打开文件系统的acl功能,在挂载参数添加cal,再保存退出,比如/home分区: vim /etc/fstab /dev/sda2 /h ...

  8. PHP基础知识学习总结

    从今天开始过一遍PHP的基础知识   加油  地址:http://www.runoob.com/php/php-mail.html   该看:PHP发送电子邮件 2017年5月23日23:38:30 ...

  9. Swift开发教程--怎样设置状态栏的文字颜色

    第一步:在Info.plist中设置UIViewControllerBasedStatusBarAppearance 为NO 第二步:在viewDidLoad中加一句 UIApplication.sh ...

  10. RabbitMQ与Redis做队列比较

    本文仅针对RabbitMQ与Redis做队列应用时的情况进行对比 具体采用什么方式实现,还需要取决于系统的实际需求简要介绍RabbitMQRabbitMQ是实现AMQP(高级消息队列协议)的消息中间件 ...