gpt4 book ai didi

c# - 不同数据库的事务

转载 作者:行者123 更新时间:2023-12-02 05:35:59 25 4
gpt4 key购买 nike

我使用 2 个不同的 dll 连接到我项目中的 2 个数据库。每个 dll 都有自己的 DAL 层。

现在在一个页面中,我需要将一组相关数据插入到这两个数据库中。我想使用事务来确保正确插入数据。但是因为我只能访问每个程序集的 Insert() 公共(public)方法,而不是 ADO.net 代码。我该如何处理这种情况?在 C# 中有这样的东西吗?

beginTransaction(){
dll1.class.Insert(data);
dll2.className.Insert(relatedData);
....
}

最佳答案

您正在寻找 TransactionScope类:

Makes a code block transactional.

示例用法:

using (var tx = new TransactionScope())
{
dll1.class.Insert(data);
dll2.className.Insert(relatedData);

tx.Complete(); // if not executed, transaction will rollback
}

作为@Anders Abel commented ,运行事务中涉及的数据库的服务器将需要在数据库服务器和客户端计算机上正确运行和配置 MSDTC 服务。 DTCPing实用程序在这方面非常有帮助。

作为Steve B commented ,这里假设所有数据库和关联的驱动程序都支持分布式事务登记。检查您的文档...

关于c# - 不同数据库的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com