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.你想使用 ...
随机推荐
- 面试题-Java设计模式举例
面试题-Java设计模式举例 1.适配器模式 涉及三个角色:Target目标接口.Adaptee源角色.Adapter适配器:Adapter将源接口适配到目标接口,继承源接口,实现目标接口. Java ...
- 08.StreamReader和StreamWrite的学习
StreamReader和StreamWrite是用来操作字符的 namespace _21.对StreamReader和StreamWriter的学习 { class Program { stati ...
- java中try-catch-finally中的return语句
在try-catch-finally语句中使用return语句遇到了一些疑问 代码一: static int intc(){ int x =0; try{ x=1; return x; }finall ...
- win10下MySQL 5.7.20解压版安装步骤
1.从官网下载MySQL5.7.20解压版64位:https://dev.mysql.com/downloads/file/?id=473309. 2.解压(我的解压路径为:E:\mysql-5.7. ...
- 从零开始的全栈工程师——JS面向对象( 六大继承 )
一.对象克隆 var obj = { name:'li', age:23 } var obj2 = obj; // 这不是对象克隆 只是把obj的内存地址给obj2 1.for in克隆(浅拷贝) ...
- 类数组arguments
var isArray = function(){ return arguments; } isArray(1,2,3); // 返回[1,2,3] isArray.call(null,1,2,3); ...
- wx.grid
wxPython控件学习之wx.grid.Grid (包括对GridCellEditor和GridCelRender的扩展,以支持更多的grid cell 样式, 以GridCellColorEdit ...
- 我的SublimeText配置
我的SublimeText改键 [ /** * 我的改键 */ // f1控制中心:f2快速查找:f3查找下一个: { "keys": ["f1"], &quo ...
- css:改变滚动条样式
以下亲测谷歌内核的浏览器有用,微软和火狐无效 body::-webkit-scrollbar {/*滚动条整体样式*/ width: 5px; /*高宽分别对应横竖滚动条的尺寸*/ height: 1 ...
- t d x 示例z
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServi ...