嗨,我有一个生成器,它使一些自动代码(创建所有的get, set等)为我结构化的数据库,在这段代码中有一段代码如下:
SqlTransaction transaction = TransactionManager.GetTransaction();
我在文件的开头手动添加了引用并导入了using System.Transactions;
,因为代码生成器从未这样做过。一旦导入,这就删除了我得到的TransactionManager error
,但现在我从我研究的.GetTransaction();
中收到了一个错误,TransactionManager
中没有这种方法。
有没有人有任何线索,应该在这个代码的地方(生成器有一些代码必须被替换,由于错误,我猜这是其中一种情况…)。任何建议将不胜感激!提前感谢!
这个答案假设你正在使用的生成器是内部构建的,你现在正在修改它-如果它是一个外部代码生成器,那么你应该查看手册,了解你需要哪些参考。
System中的TransactionManager
类。事务实际上并不为您创建或登记事务。它只是提供有关当前事务的信息。从MSDN:
该类包含静态属性以及获取信息的方法关于默认的事务选项。
相反,我认为你需要:
- sql连接对象的显式事务http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqltransaction.aspx
- 或事务范围http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx
谷歌TransactionManager似乎人们通常用这个名字写自己的类,这样做的事情就像提供一个GetTransaction()方法-可能的,这就是为什么生成器有这个名字?
仅仅添加一些事务名称空间应该没有帮助。您可能需要生成器附带的一些基本DLL或代码文件。阅读说明书
您通常通过在当前连接上调用BeginTransaction()来启动SqlTransaction。看起来你的"生成器"使用了一些它生成的或与它一起交付的TransactionManager类。