【发布时间】:2011-09-25 23:33:11
【问题描述】:
我有一个问题,用于保存文件并在 TransactionScope 中的 DB 中插入记录;意味着保存文件和插入记录,必须一起依赖=或两者或两者都不依赖。有人可以帮帮我吗?
【问题讨论】:
-
贴一些你的代码,你到底是什么问题
标签: c# file-io transactions insert dependencies
我有一个问题,用于保存文件并在 TransactionScope 中的 DB 中插入记录;意味着保存文件和插入记录,必须一起依赖=或两者或两者都不依赖。有人可以帮帮我吗?
【问题讨论】:
标签: c# file-io transactions insert dependencies
事务性 NTFS
最酷的部分之一 Transactional NTFS 是它可以工作 与大量其他 交易技术。因为 TxF 使用新的内核事务 Manager (KTM) 功能,并且因为 新的 KTM 可以直接与 Microsoft® 分布式事务 协调器 (DTC),任何技术 可以将 DTC 作为事务处理 协调员可以使用交易文件 单个操作 交易。这意味着您可以 现在征用已处理的文件操作 在与 SQL 相同的事务中 操作,通过 Web 服务调用 WS-AtomicTransaction,Windows 通信基础服务通过 OleTransactionProtocol,甚至 已处理的 MSMQ 操作。
Alpha FS 在 .NET 中提供事务 NTFS。 请参阅 Alphaleonis.Win32.Filesystem.KernelTransaction(事务事务)。可以通过Transaction.Current获取当前交易
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.RequiresNew))
{
//KernelTransaction is in AlphaFS
KernelTransaction kt = new KernelTransaction(Transaction.Current);
//Append "hello" to text file named "text.txt"
Alphaleonis.Win32.Filesystem.File.WriteAllText(kt, "text.txt", "hello");
//No text appended because exception will be thrown
throw new Exception("oops");
ts.Complete();
}
【讨论】:
try
{
// Start DB Transaction
// Save To DAtabase code
// Save To File Code
// Commit DB Transaction
}
catch
{
// Rollback DB Transaction
}
请注意 DB 的顺序应该是第一个然后保存到文件。
【讨论】: