摘要:中解决并发有两种方式利用并发利用行版本的方式代码如下利用并发利用行版本注在并发量不是很大的时候可以使用的乐观并发,在访问量很大的时候应该使用其他技术处理并发问题。
零、乐观并发
在单服务器上运行的站点,为了防止出现脏读现象,我们一般使用Lock语句关键字,但是如果在分布式站点上使用Lock语句关键字是不起作用的,因为程序锁住了服务器1数据库实例,但服务器2并不知道服务器1已被锁住,这样依然会出现脏读现象。这时我们就用到了EF的乐观并发。
EF中解决并发有两种方式:
利用并发Token;
利用行版本的方式
代码如下:
public class EfDbContext : DbContext { public EfDbContext() { Database.SetInitializer(new DropCreateDatabaseIfModelChanges()); } public virtual void OnModelCreating(DbModelBuilder modelBuilder) { // 利用并发Token modelBuilder.Entity ().Property(t=>t.Name).IsConcurrencyToken(); // 利用行版本 modelBuilder.Entity ().Property(t=>t.Name).IsRowVersion(); } }
注:在并发量不是很大的时候可以使用EF的乐观并发,在访问量很大的时候应该使用其他技术处理并发问题。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/61654.html
摘要:中解决并发有两种方式利用并发利用行版本的方式代码如下利用并发利用行版本注在并发量不是很大的时候可以使用的乐观并发,在访问量很大的时候应该使用其他技术处理并发问题。 零、乐观并发 在单服务器上运行的站点,为了防止出现脏读现象,我们一般使用Lock语句关键字,但是如果在分布式站点上使用Lock语句关键字是不起作用的,因为程序锁住了服务器1数据库实例,但服务器2并不知道服务器1已被锁住,这样...
摘要:一禁用初始化策咯某些情况下我们不需要使用的数据库初始化策略,这时我们可以在代码或配置文件中设置,如下注以代码方式禁用初始化策略,也学要在上下文派生类中的构造函数中定义 零、EF初始化数据库策略 上一节我们演示的是在数据库不存在的情况下操作数据库的方法,但是某些情况下数据库是已经存在的(例如:对已有系统的升级改造扩展、DBA已经将数据库提前创建等等)。那么这种情况下我们该怎么办呢?这时我...
摘要:一禁用初始化策咯某些情况下我们不需要使用的数据库初始化策略,这时我们可以在代码或配置文件中设置,如下注以代码方式禁用初始化策略,也学要在上下文派生类中的构造函数中定义 零、EF初始化数据库策略 上一节我们演示的是在数据库不存在的情况下操作数据库的方法,但是某些情况下数据库是已经存在的(例如:对已有系统的升级改造扩展、DBA已经将数据库提前创建等等)。那么这种情况下我们该怎么办呢?这时我...
摘要:零基于代码配置基于代码配置是新增的一个特性,操作步骤如下创建派生类配置默认连接工厂设置设置数据库初始化器创建派生类接下来使用属性在上下文类中设置基于代码的配置类配置默认连接工厂使用方法设置默认连接工厂以数据库为例设置使用方法配置数据库提供程 零、基于代码配置 基于代码配置是EF6新增的一个特性,操作步骤如下: 创建DbConfig派生类; 配置默认连接工厂; 设置Database P...
摘要:零基于代码配置基于代码配置是新增的一个特性,操作步骤如下创建派生类配置默认连接工厂设置设置数据库初始化器创建派生类接下来使用属性在上下文类中设置基于代码的配置类配置默认连接工厂使用方法设置默认连接工厂以数据库为例设置使用方法配置数据库提供程 零、基于代码配置 基于代码配置是EF6新增的一个特性,操作步骤如下: 创建DbConfig派生类; 配置默认连接工厂; 设置Database P...
阅读 2514·2021-11-25 09:43
阅读 1903·2021-11-18 13:25
阅读 1898·2021-11-15 11:38
阅读 3315·2021-10-14 09:43
阅读 1928·2021-10-14 09:42
阅读 3720·2021-09-22 15:52
阅读 1521·2021-09-22 15:49
阅读 1996·2019-08-30 15:54