У меня проблема с сохранением файла и вставкой записи в БД в TransactionScope;Средства сохранения файла и вставки записи, должны зависеть вместе = или оба, или ни то, ни другое.Кто-нибудь может мне помочь, пожалуйста?
Транзакционная NTFS
Одна из самых крутых частей транзакционной NTFS - это то, что она может работать с большим количеством других транзакционных технологий.Поскольку TxF использует новые функции Kernel Transaction Manager (KTM), а новый KTM может работать непосредственно с координатором распределенных транзакций Microsoft® (DTC), любая технология, которая может работать с DTC в качестве координатора транзакций, может использовать операции с транзакционными файлами внутриразовая транзакцияЭто означает, что теперь вы можете подключать транзакционные файловые операции в той же транзакции, что и SQL операции, вызовы веб-служб через WS-AtomicTransaction, службы Windows Communication Foundation через OleTransactionProtocol или даже транзакционные операции MSMQ.1007 * ссылка MSDN Alpha FS обеспечивает транзакцию NTFS в .NET.см. 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(); }
Одна из самых крутых частей транзакционной NTFS - это то, что она может работать с большим количеством других транзакционных технологий.Поскольку TxF использует новые функции Kernel Transaction Manager (KTM), а новый KTM может работать непосредственно с координатором распределенных транзакций Microsoft® (DTC), любая технология, которая может работать с DTC в качестве координатора транзакций, может использовать операции с транзакционными файлами внутриразовая транзакцияЭто означает, что теперь вы можете подключать транзакционные файловые операции в той же транзакции, что и SQL операции, вызовы веб-служб через WS-AtomicTransaction, службы Windows Communication Foundation через OleTransactionProtocol или даже транзакционные операции MSMQ.1007 *
ссылка MSDN
Alpha FS обеспечивает транзакцию NTFS в .NET.см. 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 }
Обратите внимание, что сначала следует указать последовательность БД, затем сохранить в файл.