好久没更新EF这个系列了,现在又重新开始. 这次学习,开放式并发.首先拿出数据库脚本: 说明一下,这个数据库脚本是之前的章节中稍作修改的: USE [SchoolDB] GO /****** Object: Table [dbo].[Student] Script Date: 11/30/2015 21:42:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Student]( [Stu…
EF中的高并发 这里只介绍EF6中database-first开发方案的高并发解决方案,code-first开发方案中的高并发会在以后的EF CodeFirst系列中介绍. EF默认支持乐观并发:我们从数据库加载了一条数据,这是有人修改了这条数据,而我们手中用的还是旧数据,这就出现了脏读,这个时候我们修改了这条数据然后执行SaveChange()会发生什么呢?EF在保存数据时会首先查看数据库中的数据有没有改变过,数据没有改变就执行保存:数据改变了会抛出异常,我们再次提交前必须解决冲突(提到解决冲…
当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响.处理这种情况的系统叫做“并发控制”.并发控制的类型通常,管理数据库中的并发有三种常见的方法: ?保守式并发控制 - 在从获取记录直到记录在数据库中更新的这段时间内,该行对用户不可用. ?开放式并发控制 - 只有当实际更新数据时,该行才对其他用户不可用.更新将在数据库中检查该行并确定是否进行了任何更改.如果试图更新已更改的记录,则将导致并发冲突. ?最后的更新生效 - 只有当实际更新数据…
原文地址:http://www.entityframeworktutorial.net/basics/what-is-entity-in-entityframework.aspx EF中的实体就是继承自DbContext类的上下文类中的,DbSet类型的实体类.EF API 将这样的每个实体映射成数据库表,并且实体中的每个属性映射成表的数据列. 例如下面的Student,StudentAddress以及Grade都是程序中的领域类. 上面这些类,当在上下文类SchoolContext[继承自Db…
原文链接:http://www.entityframeworktutorial.net/EntityFramework4.3/persistence-in-entity-framework.aspx 大家好,这一篇就是我们EF基础系列的最后一篇了,EF基础系列主要讲解的就是EF的一些基础理论知识,方便大家继续后面的学习. 使用EF有两种情况持久化数据到数据库中:一种是the Connected Scenario[连接模式],另外一种是the Disconnected Scenario[断开模式]…
原文链接:http://www.entityframeworktutorial.net/basics/entity-states.aspx 在实体的生命周期中,EF API维护着每一个实体的状态,对于每个实体来说,通过上下文类对其执行的操作的时候,都有一个状态.实体的状态是一个枚举,在EF 6中是System.Data.Entity.EntityState类型的枚举,而在EF Core中是这样的类型的枚举Microsoft.EntityFrameworkCore.EntityState.枚举的值…
原文地址:http://www.entityframeworktutorial.net/Types-of-Entities.aspx 在Entity Framework中有两种实体类型:一种是POCO实体,另一种是动态代理实体. POCO实体[Plain Old CLR Object] POCO实体就是一个不依赖于任何特定框架的类,它就像任何其他普通的.NET CLR类一样,这也是为什么叫做“Plain Old CLR OBject”. EF6和EF Core都支持POCO实体.POCO实体同样…
原文地址:http://www.entityframeworktutorial.net/basics/context-class-in-entity-framework.aspx EF中的上下文类是一个继承自DbContext的类,EF Core中也是这样.EF中的上下文类是一个重要的类,代表了一个与底层数据库的会话. 下面的SchoolContext类就是一个上下文类的例子: 上面的例子中,SchoolContext类继承自DbContext,这使它成为了一个上下文类.代码中同样包含了Stud…
大家好,好久不见,EF系列之前落下了,还是打算重新整理一下. 先说说目前的打算:先简单了解一下EF基础系列-->然后就是EF 6 Code-First系列-->接着就是EF 6 DB-First系列-->最后就是EF Core系列的学习了.EF Model-First已经过时,被微软抛弃,就不学了.这一次打算好好整理一下,一定不会烂尾,更新的可能慢点,但一定不烂尾,一定不烂尾,一定不烂尾.谢谢大家支持! 好了,废话不多说,直接步入正题. 本系列是翻译系列,原文地址是:什么是Entity…
EF自己包括看视频,看MSDN零零散散的学了一点皮毛,这次打算系统学习一下EF.我将会使用VS2012来学习这个EF基础系列. 现在看看EF的历史吧: EF版本 相关版本特性介绍 EF3.5 基于数据库优先的模式的基础ORM框架(Basic O/RM support with Database First approach.) EF4.0 支持简单传统CLR对象(Plain old CLR Object),懒加载, 提高了可测试性,可以自定义代码的生成,支持ModeFirst: (POCO Su…