Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
Wcf 与不同类型的交易混淆_Wcf_Stored Procedures_Ado.net_Transactions - Fatal编程技术网

Wcf 与不同类型的交易混淆

Wcf 与不同类型的交易混淆,wcf,stored-procedures,ado.net,transactions,Wcf,Stored Procedures,Ado.net,Transactions,我正在学习事务,我没有在实际项目中使用事务的经验。我知道我们可以在ADO.NET、存储过程和WCF中编写事务。我的困惑是在哪里写交易更合适?我们需要在多个地方写交易吗?如果我们在多个位置写入事务,性能是否会受到影响 谁能给我引路 谢谢 这里有一个简单的解释 为了获得最佳性能,我尽可能将事务写入数据库中(在存储过程中)。这通常是管理事务的最简单方法,并且需要的代码量最少 然而,在某些情况下,这是不可能的。例如,可能会对两个不同的数据库(或其他类型的数据存储)进行更新。在这种情况下,您需要从应用程序

我正在学习事务,我没有在实际项目中使用事务的经验。我知道我们可以在ADO.NET、存储过程和WCF中编写事务。我的困惑是在哪里写交易更合适?我们需要在多个地方写交易吗?如果我们在多个位置写入事务,性能是否会受到影响

谁能给我引路


谢谢

这里有一个简单的解释

为了获得最佳性能,我尽可能将事务写入数据库中(在存储过程中)。这通常是管理事务的最简单方法,并且需要的代码量最少

然而,在某些情况下,这是不可能的。例如,可能会对两个不同的数据库(或其他类型的数据存储)进行更新。在这种情况下,您需要从应用程序中管理事务(使用ADO.Net)


同样,对于WCF,如果您通过一个服务执行多个任务,如果无法在数据库中处理事务,则可能需要在该服务中处理该事务。

您好,谢谢您的回复!我还发现了一个类TransactionScope,MSDN上的文档说它使代码块具有事务性。数据库或ado.net中的事务是通过连接创建的,但我在文档中没有发现此类与连接相关,这是否意味着它只是transact代码块,与连接无关?事务不一定直接与数据库进行。例如,可以通过调用两个不同的web服务来实现。