Entity Framework 小知识(三)

简介: Entity Framework 小知识(三)

零、乐观并发

在单服务器上运行的站点,为了防止出现脏读现象,我们一般使用Lock语句关键字,但是如果在分布式站点上使用Lock语句关键字是不起作用的,因为程序锁住了服务器1数据库实例,但服务器2并不知道服务器1已被锁住,这样依然会出现脏读现象。这时我们就用到了EF的乐观并发。


EF中解决并发有两种方式:


  1. 利用并发Token;
  2. 利用行版本的方式

代码如下:

public class EfDbContext : DbContext
{
    public EfDbContext()
    {
        Database.SetInitializer(new DropCreateDatabaseIfModelChanges<EfDbContext>());
    }
    public virtual void OnModelCreating(DbModelBuilder modelBuilder)
    {
        // 利用并发Token
        modelBuilder.Entity<Users>().Property(t=>t.Name).IsConcurrencyToken();
        // 利用行版本
        modelBuilder.Entity<Users>().Property(t=>t.Name).IsRowVersion();
    }
}

注:在并发量不是很大的时候可以使用EF的乐观并发,在访问量很大的时候应该使用其他技术处理并发问题。

目录
打赏
0
0
0
0
5
分享
相关文章
Entity Framework 小知识(四)
Entity Framework 小知识(四)
154 0
Entity Framework 小知识(五)
Entity Framework 小知识(五)
154 0
Entity Framework初探
近期公司打算使用EF,于是这两天我特地研究了它的一些特性。本文记录的是我的一些研究成果。。。哎哟,说成果是不是大了点? ps:对于EF,每次它有新版发布,我都一笑而过,为啥?因为我一直非常安逸于使用一个叫IQToolkit的开源组件,该组件作者有专门写了一系列博文记录IQToolkit从无到有的诞生历程,我估计市面上很多基于Linq的ORM或多或少都借鉴过他的经验[和代码]。
1293 0
Entity Framework介绍
Entity Framework The Entity Framework is a set of technologies in ADO.NET that helps fill in the space between object-oriented development (objects) and databases.
827 0
Entity Framework DataAnnotations
前言 DataAnnotation 特性由.NET 3.5中引进,给.NET中的类提供了一种添加验证的方式。但是在EF中它又可以对映射关系进行控制,相比较Fluent API使用起来要简单一些。 DataAnnotation特性列举 DataAnnotation由命名空间System.ComponentModel.DataAnnotations提供。
916 0
Entity Framework DBFirst尝试
前言 “Database First”模式我们称之为“数据库优先”,前提是你的应用已经有相应的数据库,你可以使用EF设计工具根据数据库生成数据数据类,你可以使用Visual Studio模型设计器修改这些模型之间对应关系。
802 0
Entity Framework ModelFirst尝试
前言 Model First我们称之为“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在Visual Studio中我们通过设计对于的数据模型来生成数据库和数据类。
784 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等