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 ...
随机推荐
- shell学习五十七天----linux任务管理,针对上一讲的总结和扩展
linux任务管理 在linux下有两类任务管理,各自是一次性和周期性.一次性是at和batch,周期性又分为系统不论什么和用户任务. 一次性任务: 1.命令格式:at [选项] time 2.选项: ...
- 探究 Redis 4 的 stream 类型
redis 2 10 月初,Redis 搞了个大新闻.别紧张,是个好消息:Redis 引入了名为 stream 的新数据类型和对应的命令,大概会在年底正式发布到 4.x 版本中.像引入新数据类型这样的 ...
- HDU 5273 区间DP
输入一组数,m次询问 问每一个询问区间的逆序数有多少 区间DP简单题 #include "stdio.h" #include "string.h" int dp ...
- android 各版本的区别
三.Android 6.x 新增运行时权限概念 Android6.0或以上版本,用户可以完全控制应用权限.当用户安装一个app时,系统默认给app授权部分基础权限,其他敏感权限,需要开发者自己注意,当 ...
- python爬虫学习研究
目标:做一个小爬虫项目 2017年6月4日13:32:17 mooc网教程Python爬虫入门一之综述要学习Python爬虫,我们要学习的共有以下几点:Python基础知识Python中u ...
- React antd嵌入百度编辑器(css加载不到等问题,'offsetWidth' of null)
之前有看过一些类似的文章,以为嵌入不会遇到太多坑 结果... 其他不说,先来描述下跳坑的过程 先定义Ueditor.js类,这个和网上版本类似 import React, { Component ...
- 用C#来学习唐诗三百首和全唐诗
Begin 最近把项目做完了,闲来无事,就想做点好玩的事情,刚好前几天下载了[唐诗三百首]和[全唐诗]这两个txt文件,正好用C#来整理一下. 然后导出QData格式,可以给其他软件读取. 以后弄个开 ...
- Spring 定时作业
Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我 ...
- json-lib-2.5-jdk.jar 需要依赖的jar包
commons-lang3-3.1.jar commons-lang-2.5.jar ezmorph-1.0.6.jar commons-collections-3.2.1.jar commons-b ...
- thinkphp将APP_DEBUG常量设置为false后报错的问题
ThinkPHP 将 APP_DEBUG 常量设置为 false 后出现了下面的问题: Parse error: syntax error, unexpected T_STRING in \www\R ...