前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Entity Framework 小知识(三)

Entity Framework 小知识(三)

作者头像
喵叔
发布2020-09-08 16:15:54
2900
发布2020-09-08 16:15:54
举报
文章被收录于专栏:喵叔's 专栏
零、乐观并发

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

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

  1. 利用并发Token;
  2. 利用行版本的方式 代码如下:
代码语言:javascript
复制
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的乐观并发,在访问量很大的时候应该使用其他技术处理并发问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/06/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 零、乐观并发
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档