Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单并发ASP.NET数据库_Asp.net_Database_Concurrency - Fatal编程技术网

简单并发ASP.NET数据库

简单并发ASP.NET数据库,asp.net,database,concurrency,Asp.net,Database,Concurrency,假设我有一个包含customer\u id、name、address和balance列的银行账户表。由于客户存款和取款,余额不断变化。如何在不同时获得DBConcurrencyException的情况下偶然获得客户地址 在这种情况下,一般的方法是什么?两个用户不可能更改表行中的同一单元格,但他们可以更改同一行中的不同单元格,并用新值更新行,而不会出现问题?您应该查看包含详细信息的链接。我不确定您是否使用LINQ,但是如果您是,那么您应该看看它是如何处理并发的。LINQ使用乐观并发。因此,基本上,

假设我有一个包含customer\u id、name、address和balance列的银行账户表。由于客户存款和取款,余额不断变化。如何在不同时获得DBConcurrencyException的情况下偶然获得客户地址


在这种情况下,一般的方法是什么?两个用户不可能更改表行中的同一单元格,但他们可以更改同一行中的不同单元格,并用新值更新行,而不会出现问题?

您应该查看包含详细信息的链接。

我不确定您是否使用LINQ,但是如果您是,那么您应该看看它是如何处理并发的。LINQ使用乐观并发。因此,基本上,如果用户试图更新一条记录,而该记录在此期间已被更新,则会发生并发冲突

但是,您可以决定LINQ表中的哪些属性用于并发检查——在这种情况下,LINQ将不关心该记录中的值是否更改


还有一些处理异常的方法—您可以在异常周围放置一个try块—并编写一些代码来处理不同的场景。

我希望这不是针对真正的银行。如果您实际将
名称
地址
余额
存储在同一个表中,那么您已经做错了!仔细阅读规范化。