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的乐观并发,在访问量很大的时候应该使用其余技术处理并发问题。
相关文章
相关标签/搜索