实体框架中的存储过程:

我们在创建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属性时加载特定学生的地址。

延迟加载规则:

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

显式加载相关实体

查询相关实体

.Collection(s => s.Courses).Query()

执行原生SQL查询

使用DBContext对数据库执行本地原始SQL查询。可以执行以下类型的查询:

  1. 返回特定类型的实体的实体类型的SQL查询
  2. SQL查询返回原始数据类型的非实体类型
  3. 原始SQL命令到数据库

实体类型的SQL查询:

非实体类型的SQL查询:

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

对数据库的原始SQL命令:

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

Entity Framework 六的更多相关文章

  1. 《Entity Framework 6 Recipes》中文翻译系列 (30) ------ 第六章 继承与建模高级应用之多对多关联

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第六章  继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章 ...

  2. 《Entity Framework 6 Recipes》中文翻译系列 (37) ------ 第六章 继承与建模高级应用之独立关联与外键关联

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-13  在基类中应用条件 问题 你想从一个已存在的模型中的实体派生一个新的实体, ...

  3. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片——多对多关系(上篇)

    在这章中,我们将学习如何创建一个管理图片的新实体,如何使用HTML表单上传图片文件,并使用多对多关系将它们和产品关联起来,如何将图片存储在文件系统中.在这章中,我们还会学习更加复杂的异常处理,如何向模 ...

  4. Entity Framework(六):数据迁移

    在前面的几篇文章中,简单的介绍了如何使用Entity Framework的Code First模式创建数据库,但是,在前面的几篇文章中,我们都是通过使用数据库初始化策略来做,也就是每次先删除数据库然后 ...

  5. 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的无状态模 ...

  6. ASP.NET CORE系列【六】Entity Framework Core 之数据迁移

    原文:ASP.NET CORE系列[六]Entity Framework Core 之数据迁移 前言 最近打算用.NET Core写一份简单的后台系统,来练练手 然后又用到了Entity Framew ...

  7. Apworks框架实战(六):使用基于Entity Framework的仓储基础结构

    在前面的章节中,我们已经设计了一个简单的领域模型,接下来我们希望能够实现领域模型的持久化及查询.在Apworks中,实现了面向Entity Framework.NHibernate以及MongoDB的 ...

  8. 《Entity Framework 6 Recipes》中文翻译系列 (31) ------ 第六章 继承与建模高级应用之自引用关联

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-4  使用TPH建模自引用关系 问题 你有一张自引用的表,它代表数据库上不同类型 ...

  9. 《Entity Framework 6 Recipes》中文翻译系列 (32) ------ 第六章 继承与建模高级应用之TPH与TPT (1)

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-6  映射派生类中的NULL条件 问题 你的表中,有一列允许为null.你想使用 ...

随机推荐

  1. HDU 5635 ——LCP Array ——————【想法题】

    LCP Array Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  2. POJ 2528——Mayor's posters——————【线段树区间替换、找存在的不同区间】

    Mayor's posters Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Sub ...

  3. contentType和dataType

    contentType: 告诉服务器,我要发什么类型的数据 dataType:告诉服务器,我要想什么类型的数据,如果没有指定,那么会自动推断是返回 XML,还是JSON,还是script,还是Stri ...

  4. The eighteen day

    27th Nov 2018 Setting goals is the first step in turning the invisible into the visiable   ---Tony R ...

  5. Eclipse Startup

    First of all, we take a look at class EclipseStarter /********************************************** ...

  6. ArcGIS Engine从服务器(ArcSDE geodatabases)读取数据

    从远程服务器读取数据进行处理,直接贴代码: public class ConnectDB { private static String SERVER = "xxx.xxx.xxx.xxx& ...

  7. 怎样在vs2013和vs2015中实现自动编译sass

    Visual Studio不论是2013版本还是2015版本要自动编译都需要添加扩展. 添加扩展的方法,路径“工具”->“扩展和更新”,在打开的窗口“搜索”你需要的扩展根据提示“下载”和“安装” ...

  8. 使用WindowsService为宿主实装WCF 服务

    1. 写WCF服务   创建一个接口类,与一个实现类.接口类上打上[ServiceContract]标签,需要暴露的服务方法上打上[OperationContract] (注意:增加System.Se ...

  9. WAKE-LINUX-SOFT-linux安装,配置,基础

    1,ubuntu 1,1下载,安装 中文ubuntu站,http://cn.ubuntu.com/ 下载地址:https://www.ubuntu.com/download 安装手册:https:// ...

  10. 数据结构与算法分析java——树2(二叉树类型)

    1. 二叉查找树 二叉查找树(Binary Search Tree)/  有序二叉树(ordered binary tree)/ 排序二叉树(sorted binary tree) 1). 若任意节点 ...