HTML5技术

[高并发]EntityFramework之高性能扩展 - Never、C

字号+ 作者:H5之家 来源:H5之家 2017-07-07 10:02 我要评论( )

[高并发]EntityFramework之高性能扩展 目录 Todo repository 简介读写分离 读写分离,支持可配置项的方式。同时支持权重的方式轮询。 先看段配置文件 指定字段更新 目前封装了3种形式的,指定字段更新方法。 对象不存在上下文 var user = new User { Id = 2,

[高并发]EntityFramework之高性能扩展

目录

  • Todo
  • repository
  • 简介 读写分离

    读写分离,支持可配置项的方式。同时支持权重的方式轮询。

  • 先看段配置文件

  • 指定字段更新

    目前封装了3种形式的,指定字段更新方法。

  • 对象不存在上下文

    var user = new User { Id = 2, Name = Guid.NewGuid().ToString() }; DemoDbContext.CurrentDb.UpdateField(user, "Name");
  • 对象已存在上下文

    var user = new User { Id = 2, Name = Guid.NewGuid().ToString() }; DemoDbContext.CurrentDb.UpdateField(user, x => x.Id == 2, "Name");
  • 对象为IEntity,无论是否存在上下文均支持

    var user = new User { Id = 2, Name = Guid.NewGuid().ToString() }; DemoDbContext.CurrentDb.UpdateEntityField(user, "Name"); 事务
  • 事务类型
    在.NET 中,事务分SQLTransaction和TransactionScope。后者在MSDTC(Distributed Transaction Coordinator)开启的时候,支持分布式事务。
  • TransactionScopeOption
  • Required
  • 默认方式,如果存在环境事务,直接取环境事务,如果不存在,则创建新的
  • RequiresNew
  • 直接创建新的环境事务
  • Suppress
  • 取消当前区域环境事务
  • 隔离等级IsolationLevel
  • ReadUncommitted(读未提交)
  • 表示:未提交读。当事务A更新某条数据的时候,不容许其他事务来更新该数据,但可以进行读取操作
  • ReadCommitted(读提交)
  • 表示:提交读。当事务A更新数据时,不容许其他事务进行任何的操作包括读取,但事务A读取时,其他事务可以进行读取、更新
  • RepeatableRead
  • 表示:重复读。当事务A更新数据时,不容许其他事务进行任何的操作,但是当事务A进行读取的时候,其他事务只能读取,不能更新
  • Serializable
  • 表示:序列化。最严格的隔离级别,当然并发性也是最差的,事务必须依次进行。
  • 默认级别
  • 事务特性(ACID)
  • 原子性(Atomicity)
  • 事务是数据库的逻辑工作单位,事务中的诸多操作要么全做要么全不做
  • 一致性(Consistency)
  • 事务执行结果必须是使数据库从一个一致性状态变到另一个一致性状态
  • 隔离性(Isolation)
  • 一个数据的执行不能被其他事务干扰
  • 持续性/永久性(Durability)
  • 一个事务一旦提交,它对数据库中的数据改变是永久性的
  • 说了那么多,本插件对事务的支持:

    DemoDbContext.CurrentDb.TransExecute(x => { x.Users.Add(new User()); return x.SaveChanges(); });

    针对事务,同时支持锁的读取功能

    var userList = DemoDbContext.CurrentDb.NoLockFunc(db => db.Users.ToList()); Entity

    类似ABP框架,提供了IEntity,ICreatorEntity,IModifyEntity,IAuditionEntity,IDeletionEntity等等

    posted @

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • EntityFramework Core映射关系详解 - Jeffcky

      EntityFramework Core映射关系详解 - Jeffcky

      2017-06-19 17:01

    • 探讨SQL Server并发处理存在就更新七种解决方案 - Jeffcky

      探讨SQL Server并发处理存在就更新七种解决方案 - Jeffcky

      2017-06-01 17:00

    • EntityFramework Core并发深挖详解,一纸长文,你准备好看完了吗? - Jeffcky

      EntityFramework Core并发深挖详解,一纸长文,你准备好看完了吗? -

      2017-04-05 14:03

    • EntityFramework Core不得不注意的性能优化意外收获,你会用错? - Jeffcky

      EntityFramework Core不得不注意的性能优化意外收获,你会用错? - J

      2017-04-05 14:00

    网友点评
    h