历史版本和未来版本

本文介绍有关实体框架 (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. linux svn 更新地址

    进行你所工作的svn映射到本地的目录中.在终端下运行$svn switch --relocate http://oldPath http://newpath.系统提示输入用户名,密码.重新输入后,即可 ...

  2. lnmp 环境require(): open_basedir restriction in effect 错误

    最近配置开发用的lnmp环境,环境配置完成后,爆500错误,查看nginx错误日志 open_basedir 将 PHP 所能打开的文件限制在指定的目录树,包括文件本身 错误日志显示,访问脚本不在 o ...

  3. android 小游戏之数字猜猜

    http://www.cnblogs.com/whatbeg/p/4152333.html

  4. Unity导出AssetBundle到指定路径

    using System.Collections; using UnityEngine; using UnityEditor; using System.IO; /// <summary> ...

  5. Java之Filter

    一.何为Filter? Filter也称之为过滤器,它是Servlet技术中比較激动人心的技术.WEB开发者通过Filter技术.对webserver管理的全部web资源.换句话说其主要用于前台向后台 ...

  6. 异常:The JSP specification requires that an attribute name is preceded by whitespace

    The JSP specification requires that an attribute name is preceded by whitespace: 其实这句话翻译就是 属性后面要必须有空 ...

  7. 物理cpu和逻辑cpu

    1 物理cpu 插槽里面实际插入的cpu的个数. 通过不重复的physical id可以获取实际的物理cpu的个数. 2 逻辑cpu cat /proc/info processor 1 proces ...

  8. csv .xlsx

    def gen_file_data(fodir, fname, sheet_index=0, ): if fname.find('.xlsx') > -1: fname_open = '%s\\ ...

  9. ZOJ - 3537 Cake (凸包+区间DP+最优三角剖分)

    Description You want to hold a party. Here's a polygon-shaped cake on the table. You'd like to cut t ...

  10. Android Screen Orientation

    Ref:Android横竖屏切换小结 Ref:Android游戏开发之横竖屏的切换(二十七)