美文网首页
Entity Framework 小知识(三)

Entity Framework 小知识(三)

作者: Tootwo兔 | 来源:发表于2019-06-17 12:52 被阅读0次

    零、乐观并发

    在单服务器上运行的站点,为了防止出现脏读现象,我们一般使用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的乐观并发,在访问量很大的时候应该使用其他技术处理并发问题。

    相关文章

      网友评论

          本文标题:Entity Framework 小知识(三)

          本文链接:https://www.haomeiwen.com/subject/aehafctx.html