嗨,我有一个生成器,它为我做了一些自动化的代码(创建所有的get,set等)由一个数据库构造,在这个代码中有一段代码,如下所示:
SqlTransaction transaction = TransactionManager.GetTransaction();我在文件的开头手动添加了引用并导入了using System.Transactions;,因为代码生成器从来没有这样做过。导入后,这删除了我正在获取的TransactionManager error,但现在我在.GetTransaction();上收到一个错误,因为我研究了TransactionManager中没有这样的方法。
有没有人知道应该用什么来代替这段代码(生成器有一些代码由于错误而必须被替换,我猜这就是其中一种情况...)。如有任何建议,我们将不胜感激!提前感谢!
发布于 2011-04-21 20:59:28
这个答案假设你正在使用的生成器是内部构建的,并且你现在正在修改它-如果它是一个外部代码生成器,那么你应该检查手册中关于你需要的参考资料。
System.Transactions中的TransactionManager类实际上不会为您创建或登记事务。它只是提供有关当前事务的信息。来自MSDN:
此类包含用于获取有关默认事务选项的信息的静态属性和方法。
相反,我认为你想要的是:
从sql
显式连接事务。
谷歌一下TransactionManager,似乎人们通常用这个名字编写自己的类,这些类的作用类似于提供一个GetTransaction()方法--这可能就是生成器有这个名字的原因吧?
发布于 2011-04-21 20:59:50
仅仅添加一些事务名称空间应该没有帮助。您可能需要一些基本的DLL或生成器附带的代码文件。请阅读手册。
发布于 2011-04-21 21:00:52
通常通过在当前连接上调用BeginTransaction()来启动SqlTransaction。看起来您的“生成器”使用了它生成的或随它一起交付的某个TransactionManager类。
https://stackoverflow.com/questions/5744296
复制相似问题