gpt4 book ai didi

c# - 为什么我的交易没有升级为 DTC?

转载 作者:太空狗 更新时间:2023-10-29 17:52:35 24 4
gpt4 key购买 nike

我的机器上禁用了 DTC。据我了解,这段代码应该会失败,因为它在同一个事务中使用了两个数据上下文。那么,它为什么有效? (注意:我使用 .NET 3.5 和 .NET 4.0 进行了尝试。)

using (TransactionScope transactionScope = new TransactionScope())
{
UpdateEta();
UpdateBin();

transactionScope.Complete();
}

以下是被调用的 DAL 方法:

public static void UpdateBin(Bin updatedBin)
{
using (DevProdDataDataContext dataContext = new DevProdDataDataContext(ConnectionString))
{
BinRecord binRecord = (from bin in dataContext.BinRecords
where bin.BinID == updatedBin.BinId
select bin).FirstOrDefault();

binRecord.BinID = updatedBin.BinId;
binRecord.BinName = updatedBin.BinName;

dataContext.SubmitChanges();
}
}

public static void UpdateEta(Eta updatedEta)
{
using (DevProdDataDataContext dataContext = new DevProdDataDataContext(ConnectionString))
{
EtaRecord etaRecord = (from eta in dataContext.EtaRecords
where eta.ID == updatedEta.ID
select eta).FirstOrDefault();

etaRecord.ID = updatedEta.ID;
etaRecord.Title = updatedEta.Title;

dataContext.SubmitChanges();
}
}

最佳答案

两者之间的连接字符串是否不同?如果不是,可能是它们都重用了同一底层连接池中的同一连接,从而消除了提升为 DTC 的需要?

关于c# - 为什么我的交易没有升级为 DTC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5914570/

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