并发概述(LINQ to SQL)

48、LINQ to SQL:并发冲突检测与解决 本文详细介绍了 LINQ to SQL 中的并发冲突检测与解决机制。内容涵盖 LINQ to SQL 和 DataContext 的基本功能、并发冲突的概念与处理策略,包括乐观并发模型、冲突检测方法(如 IsVersion 和 UpdateCheck 属性)、SubmitChanges 方法的作用及 ConflictMode 参数、ChangeConflictException 异常的捕获以及三种冲突解决方式(ResolveAll、遍历 ObjectChangeConflict、遍历 MemberChang 阅读详情

并发(Concurrency)分为开放式并发(Optimistic Concurrency)与保守式并发(Pessimistic Concurrency). LINQ to SQL 支持开放式并发控制。下表介绍涉及开放式并发的术语: 

术语

说明

并发

Concurrency

两个或更多用户同时尝试更新同一数据库行的情形。

The situation in which two or more users at the same time try to update the same database row.

并发冲突

Concurrency Conflict

两个或更多用户同时尝试向一行的一列或多列提交冲突值的情形。

The situation in which two or more users at the same time try to submit conflicting values to one or more columns of a row.

并发控制

Concurrency Control

用于解决并发冲突的技术。

The technique used to resolve concurrency conflicts.

开放式并发控制

Optimistic Concurrency Control

先调查其他事务是否已更改了行中的值,再允许提交更改的技术。

相比之下,保守式并发控制则是通过锁定记录来避免发生并发冲突。

之所以称作开放式控制,是因为它将一个事务干扰另一事务视为不太可能发生。

The technique that first investigates whether other transactions have changed values in a row before permitting changes to be submitted.

Contrast with pessimistic concurrency control, which locks the record to avoid concurrency conflicts.

Optimistic control is so termed because it considers the chances of one transaction interfering with another to be unlikely.

冲突解决

Conflict Resolution

通过重新查询数据库刷新出现冲突的项,然后协调差异的过程。

刷新对象时,LINQ to SQL 更改跟踪器会保留以下数据:

l         最初从数据库获取并用于更新检查的值。

l         通过后续查询获得的新数据库值。

LINQ to SQL 随后会确定相应对象是否发生冲突(即它的一个或多个成员值是否已发生更改)。 如果此对象发生冲突,LINQ to SQL 下一步会确定它的哪些成员发生冲突。

LINQ to SQL 发现的任何成员冲突都会添加到冲突列表中。

The process of refreshing a conflicting item by querying the database again and then reconciling differences.

When an object is refreshed, the LINQ to SQL change tracker holds the following data:

l         The values originally taken from the database and used for the update check.

l         The new database values from the subsequent query.

LINQ to SQL then determines whether the object is in conflict (that is, whether one or more of its member values has changed). If the object is in conflict, LINQ to SQL next determines which of its members are in conflict.

Any member conflict that LINQ to SQL discovers is added to a conflict list.

49、LINQ to SQL:并发冲突与其他高级特性解析 本文详细解析了LINQ to SQL中的并发冲突处理、数据库视图的应用以及实体类继承等高级特性。通过手动解决并发冲突、悲观并发控制和中间层替代方法,开发者可以有效处理数据操作中的冲突问题。同时,数据库视图提供了封装复杂查询逻辑和增强数据安全性的能力,而实体类继承则为数据建模带来了更大的灵活性。结合事务处理、多态查询和最佳实践,可以开发高效且稳定的数据驱动应用程序。 阅读详情

相关推荐

Synopsys SCL许可证服务器搭建详解:从安装到生成.dat文件

本文详细解析了Synopsys SCL许可证服务器的完整搭建流程,从系统环境准备、SCL安装到生成.dat文件。重点阐述了如何正确获取HOST ID、配置License文件以及调试常见故障,为数字芯片设计工程师提供了一套从零到一的实战避坑指南,确保EDA工具链稳定运行。

weixin_29306011的博客 611

LINQ to SQL使用教程

前些时间用LINQ to SQL做了一些项目,现在打算总结一下,帮助新手快速入门,并写一些别的教程没提到的东西。 一、LINQ to SQL和别的LINQ to XXX有什么关系?二、延迟执行(Deferred Loading)三、什么是LINQ to SQL?四,看看LINQ to SQL到底干了些啥?——创建自己的工具类五、创建一个基本查询六,大致扫一扫 1,WHERE ...

anw53724的博客 1124

利用netmq在相机应用于unity之间传输图像数据

Unity工业相机接入方案解析 本文探讨了在Unity中接入不同品牌工业相机的技术方案。研究发现: Basler相机可直接调用官方DLL(pylonc.net.dll)实现接入 海康和大恒相机因驱动DLL依赖C++组件,无法直接调用 解决方案:通过独立进程(相机应用程序)与Unity进行通信,采用NetMQ实现图像数据传输 技术实现要点: 相机端:使用PublisherSocket发布JPEG图像帧 Unity端:通过SubscriberSocket订阅图像数据 优化:设置高水位线控制缓存帧数,避免数据堆积

weixin_46450859的博客 417

LINQ : 在LINQ TO SQL中使用事务和控制并发

LINQ TO SQL,顾名思义,涉及到了数据库操作。那么就会有一个事务的概念,例如,假设我们需要一次性插入两个实体,但希望保证这两个操作的完整性的话。 1. 隐式事务 其实,即便我们不写代码,LINQ TO SQL也会自动创建一个事务的。默认事务隔离级别为ReadCommitted   2. 显式事务 我们也可以自己写代码,来明确地控制事务,默认事务隔离级别为ReadCommitted Nort

陈希章@中国 3605

ovs实现lb负载均衡

负载均衡器的实现原理是通过硬件或软件设备将客户端访问流量根据转发策略分发到多个服务器或设备上,以确保系统的负载均衡。二层负载均衡‌:使用虚拟MAC地址方式,根据OSI模型的二层进行负载均衡。‌四层负载均衡‌:基于IP+端口的负载均衡,主要分析IP层及TCP/UDP层,实现四层负载均衡。‌七层负载均衡‌:从应用层开始,根据虚拟的URL或IP、主机名接收请求,再转向相应的处理服务器。

bobi的博客 951

基于CODESYS与EtherCAT的步进电机单轴控制实践

本文详细介绍了基于CODESYS平台与EtherCAT总线技术实现步进电机单轴控制的完整实践流程。从硬件选型、软件工程创建、EtherCAT主从站配置,到运动控制功能块编程与在线调试,手把手指导读者完成从零到一的搭建,并提供了常见问题的排坑指南,帮助自动化开发者快速掌握这一高效、灵活且成本可控的工业运动控制解决方案。

hh234的博客 491

LinQ to SQL 并发与事务

检测并发        首先使用下面的SQL语句查询数据库的产品表: select * from products where categoryid=1        查询结果如下图:        为了看起来清晰,我已

Leonard 1141

基于PI双闭环解耦控制的三相SVPWM电压型逆变器(3)--调制方法

阐述SPWM和SVPWM的原理以及实现方法

weixin_58670090的博客 6259

一步一步学Linq to sql(七):并发与事务

转自:http://kb.cnblogs.com/page/42688/ 检测并发 首先使用下面的SQL语句查询数据库的产品表: select * from products where categoryid=1 查询结果如下图: 为了看起来清晰,我已经事先把所有分类为1产品的价格和库存修改为相同值了。然后执行下面的程序: var query = from ...

amkr21253的博客 153

【电源专题】案例:对比不同电池在不同电流下的电池放电曲线

无

一点硬件 2840

RK3588 固定hdmiin的dev/videoX节点

RK3588 固定hdmiin的dev/videoX节点

目前从事linux驱动开发,多交流多学习吧 2050

DLINQ(LINQ to SQL)之事务处理和并发处理

介绍 以Northwind为示例数据库,DLINQ(LINQ to SQL)之事务处理和并发处理 示例 TransactionAndConcurrency.aspx <%@ Page Language="C#" MasterPageFile="~/Site.mas

anchenyanyue的专栏 2303

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LINQ体验(10)——LINQ to SQL语句之开放式并发控制和事务

从今天开始继续这个系列。告诉大家一个好消息:微软于2月1日发布了Visual Studio Team System 2008 Team Suite简体中文版,您可以在这里下载Visual Studio Team System 2008 Team Suite简体中文版90 天试用版。今天简单的学习下开放式并发控制和事务的内容,具体详细的内容现在可以参看MSDN了。 Simultaneous

技术资料收集站 380

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Linq to sql并发与事务

本文转载:http://www.cnblogs.com/lovecherry/archive/2007/08/20/862365.html 检测并发 首先使用下面的SQL语句查询数据库的产品表: select * from products where categoryid=1 查询结果如下图: ...

weixin_30663391的博客 107

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Linq to Sql(七):并发与事务

检测并发       首先使用下面的SQL语句查询数据库的产品表:select * from products where categoryid=1       查询结果如下图:        为了看起来清晰,我已经事先把所有分类为1产品的价格和库存修改为相同值了。然后执行下面的

295

Linq to sql(七):并发与事务

检测并发          首先使用下面的SQL语句查询数据库的产品表: select * from products where categoryid=1        查询结果如下图:          为了看起来清晰,我已经事先把所有分类为1产品的价格和库存修改为相同值了。然后执行下面的程序:         var

学无止境 489

LINQ-to-SQL那点事~LINQ-to-SQL中的并发冲突与应对

在上一篇文章中提到了并发冲突,还说详细的说明在这讲来说,呵呵,那现在就说一下吧! 并发冲突产生的原因 事实上,linq to sql中的并发冲突是指记录在进行update操作时,客户端A1取出的数据{1,zzl,male},客户端A2也取出这条数据{1,zzl,male},这时A1进行对实体重新赋值{1,zzl,female},并进行submit提交,数...

weixin_33762321的博客 110
上一篇: LINQ的发音
下一篇: Logging & Exception Handling Application Block
Jason_Steven
博客等级 码龄20年 14粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值