2011-04-21 82 views
0

您好我有一臺發電機,其提出了一些自動的代碼(創建所有的get,set等等)對我的數據庫結構,在這段代碼是有一段代碼如下:C#事務管理

SqlTransaction transaction = TransactionManager.GetTransaction(); 

我已經在文件的開頭手動添加了引用並導入了using System.Transactions;,因爲代碼生成器從未這樣做過。一旦導入,這刪除了TransactionManager error我得到,但現在我收到.GetTransaction();從我研究的有沒有這樣的方法在TransactionManager的錯誤。
有沒有人有什麼線索應該代替這段代碼(發生器有一些代碼因爲錯誤而必須被替換,我猜這是其中的一種情況)。任何建議,將不勝感激!提前致謝!

+0

您需要指定您使用的生成器。 – jgauffin 2011-04-21 12:56:50

回答

2

這個答案假定你使用的發生器是內置的,現在你正在修改它 - 如果它是一個外部代碼生成器,那麼你應該檢查一下你的手冊。

System.Transactions中的TransactionManager類實際上並沒有爲您創建或登記事務。它只是提供有關當前交易的信息。從MSDN:

此類包含用於獲取有關默認事務選項信息 靜態屬性 和方法。

相反,我想你想要麼:

谷歌搜索事務管理,似乎人們經常寫明確的事務他們自己的類與這個名字做事情就像提供一個GetTransaction()方法 - 可能這就是爲什麼生成器有這個nam è?

+0

這是一個內部應用程序,但並非由我的項目團隊提供給我們使用,但創建者現在正在度假,並且沒有手冊。我們並不試圖使用我們需要的實際生成器來簡化創建數據庫的所有數據類型。 – 2011-04-21 13:10:18

+0

@ Lord-Link在這種情況下,我認爲您需要從您的生成器中找到TransactionManger的名稱空間,並將其包含在內,因爲它不是System.Transactions的TransactionManager – 2011-04-21 13:12:19

0

僅添加一些事務名稱空間應該沒有幫助。您可能需要生成器附帶的一些基本DLL或代碼文件。閱讀手冊。

0

您通常通過在當前連接上調用BeginTransaction()來啓動SqlTransaction。看起來像你的「發電機」使用它生成的或與它一起交付的一些TransactionManager類。

+0

現在來看看...... – 2011-04-21 13:11:10