为什么我的交易不会升级到DTC?

Bob*_*orn 9 c# datacontext linq-to-sql

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

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

    transactionScope.Complete();
}
Run Code Online (Sandbox Code Playgroud)

以下是调用的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();
    }
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*ike 6

两者之间的连接字符串是否不同?如果没有,可能是他们都在相同的底层连接池中重用相同的连接,从而无需升级到DTC?