Entity Framework 六
实体框架中的存储过程:
我们在创建edmx的时候把存储过程勾选了,所以在我们的上下文上中生成了方法。

存储过程为:就是需要显示多个表的字段。以往需要显示多个表的字段都是新建一个类把需要的字段当做属性写,然后使用LINQ把需要的字段全部映射出来。它这里一样的

edmx里面会出现不是数据库中的表,这种情景是适用于一个里面中需要显示多表字段

使用存储过程:


等同于在数据库中执行存储过程


使用存储过程的CRUD:
①添加学生信息
存储过程

select SCOPE_IDENTITY()
返回上面操作的数据表最后row的IDENTITY 列的值;也就是添加后的ID(主键)
生成的方法

使用方法:



②更新学生信息

生成的方法:

使用方法:



③删除学生

生成方法:

使用方法:


实体框架中的枚举: 三种方法可以使属性变成枚举类型
1,把现有属性转为枚举
①把你的项目框架调到4.5

②打开设计器,在Teacher 表中新加标量属性 TeacherType.数据库也也需要添加

保存,然后你的Teacher类中就会出现新加的属性

③右键 TeacherType,转换到枚举


④检查类型



⑤添加新老师

2,从设计添加实体


然后把TeacherType的类型改为枚举也可以。
3,在代码里面写了枚举类型
直接在模型浏览器中枚举中添加,选择引用外部类型,把枚举的命名空间写进去就可以了k


实体框架5.0中的空间数据类型支持
一般的数据类型都接受,这就不用说了。
timespan 时间戳类型 ——————》 Byte[] 字节组类型
geography 地理位置类型——————》 System.Data.Entity.Spatial.DbGeography
急切加载:
急切加载是查询一种类型的实体的过程,也加载相关的实体作为查询的一部分。使用Include()方法实现加载。先进行一步的过滤,然后再用where进行筛选。

延迟加载:
实体框架的一个重要功能是延迟加载。延迟加载意味着延迟加载相关数据,直到您明确请求为止。例如,Student类包含StudentAddress作为复杂属性。因此,上下文首先加载数据库中的所有学生,然后在我们访问StudentAddress属性时加载特定学生的地址。

延迟加载规则:
- context.Configuration.ProxyCreationEnabled应该是true。
- context.Configuration.LazyLoadingEnabled应该是true。
- 导航属性应该定义为公共的,虚拟的。如果属性没有被定义为虚拟的,上下文将不会执行延迟加载。

显式加载相关实体

查询相关实体

.Collection(s => s.Courses).Query()
执行原生SQL查询
使用DBContext对数据库执行本地原始SQL查询。可以执行以下类型的查询:
- 返回特定类型的实体的实体类型的SQL查询
- SQL查询返回原始数据类型的非实体类型
- 原始SQL命令到数据库
实体类型的SQL查询:

非实体类型的SQL查询:
可以使用Database类上的SqlQuery方法创建返回任何类型(包括原始类型)的实例的SQL查询。

对数据库的原始SQL命令:
ExecuteSqlCommnad方法在将非查询命令发送到数据库(例如Insert,Update或Delete命令)中非常有用。


Entity Framework 六的更多相关文章
- 《Entity Framework 6 Recipes》中文翻译系列 (30) ------ 第六章 继承与建模高级应用之多对多关联
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第六章 继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (37) ------ 第六章 继承与建模高级应用之独立关联与外键关联
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-13 在基类中应用条件 问题 你想从一个已存在的模型中的实体派生一个新的实体, ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片——多对多关系(上篇)
在这章中,我们将学习如何创建一个管理图片的新实体,如何使用HTML表单上传图片文件,并使用多对多关系将它们和产品关联起来,如何将图片存储在文件系统中.在这章中,我们还会学习更加复杂的异常处理,如何向模 ...
- Entity Framework(六):数据迁移
在前面的几篇文章中,简单的介绍了如何使用Entity Framework的Code First模式创建数据库,但是,在前面的几篇文章中,我们都是通过使用数据库初始化策略来做,也就是每次先删除数据库然后 ...
- ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
ASP.NET MVC深入浅出系列(持续更新) 一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...
- ASP.NET CORE系列【六】Entity Framework Core 之数据迁移
原文:ASP.NET CORE系列[六]Entity Framework Core 之数据迁移 前言 最近打算用.NET Core写一份简单的后台系统,来练练手 然后又用到了Entity Framew ...
- Apworks框架实战(六):使用基于Entity Framework的仓储基础结构
在前面的章节中,我们已经设计了一个简单的领域模型,接下来我们希望能够实现领域模型的持久化及查询.在Apworks中,实现了面向Entity Framework.NHibernate以及MongoDB的 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (31) ------ 第六章 继承与建模高级应用之自引用关联
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-4 使用TPH建模自引用关系 问题 你有一张自引用的表,它代表数据库上不同类型 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (32) ------ 第六章 继承与建模高级应用之TPH与TPT (1)
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-6 映射派生类中的NULL条件 问题 你的表中,有一列允许为null.你想使用 ...
随机推荐
- JQuery选择器——《锋利的JQuery》
刚学CSS的时候我们已经接触了选择器,其实就是按照一定的规则选择出来我们想要获取到的元素.在这里,既然选择了用jQuery选择器,首先来谈谈JQuery选择器的优势: 1.简洁的写法:$()函数在很多 ...
- Node.js 框架对比之 Express VS Koa
背景 上图是一个典型的采用 Node.js 开发 web 应用的前后端结构,下面介绍一下 Node 服务层在其中的作用以及使用 Node.js 的一些优劣. Node 服务层作用: 请求代理 传统做法 ...
- git每次提交都输入密码
打开gitbash执行即可 git config --global credential.helper store 长期储存密码,因为git默认是不储存密码的,不执行这条命令的话每次更新代码,或者提交 ...
- JavaScript typeof运算符和数据类型
// js有6种数据类型:Undefined.Null.Boolean.String.Number.Object //(01)typeof console.log(typeof undefined); ...
- BindingResult参数验证的跨层次迭代验证
public ResponseWrapper<Object> recordAdd(@RequestBody @Valid ReqAddEnterpriseInfoDTO addEnterp ...
- Java线程同步打印ABC
需求: 三个线程,依次打印ABCABCABC.... 方案一: 使用阻塞队列,线程1从队列1获取内容打印,线程2从队列2获取内容打印,线程3从队列3中获取内容打印.线程1把B放到队列3中,线程2把C放 ...
- 《本博客将搬至CSDN》 博客主QQ 654436731 有关于本博客任何文章的问题欢迎打扰
地址 http://blog.csdn.net/sajiazaici
- IO流之File类
IO概述: 程序数据都是在内存中,程序运行结束,这些数据将清空,数据都都不能保存下来,下次程序启动的时候,想再把这些数据读出来继续使用,把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化 ...
- winform DataGridView 通用初始化
void DGV_Init() { //名称 类型 设备数 累计转发次数 累计转发数据数 状态 ; i < ; i++) { DataGridViewTextBoxColumn dc = new ...
- Hadoop ->> HDFS(Hadoop Distributed File System)
HDFS全称是Hadoop Distributed File System.作为分布式文件系统,具有高容错性的特点.它放宽了POSIX对于操作系统接口的要求,可以直接以流(Stream)的形式访问文件 ...