首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# TransactionManager

C# TransactionManager
EN

Stack Overflow用户
提问于 2011-04-21 20:46:49
回答 3查看 2.7K关注 0票数 0

嗨,我有一个生成器,它为我做了一些自动化的代码(创建所有的get,set等)由一个数据库构造,在这个代码中有一段代码,如下所示:

代码语言:javascript
复制
SqlTransaction transaction = TransactionManager.GetTransaction();

我在文件的开头手动添加了引用并导入了using System.Transactions;,因为代码生成器从来没有这样做过。导入后,这删除了我正在获取的TransactionManager error,但现在我在.GetTransaction();上收到一个错误,因为我研究了TransactionManager中没有这样的方法。

有没有人知道应该用什么来代替这段代码(生成器有一些代码由于错误而必须被替换,我猜这就是其中一种情况...)。如有任何建议,我们将不胜感激!提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-21 20:59:28

这个答案假设你正在使用的生成器是内部构建的,并且你现在正在修改它-如果它是一个外部代码生成器,那么你应该检查手册中关于你需要的参考资料。

System.Transactions中的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()方法--这可能就是生成器有这个名字的原因吧?

票数 2
EN

Stack Overflow用户

发布于 2011-04-21 20:59:50

仅仅添加一些事务名称空间应该没有帮助。您可能需要一些基本的DLL或生成器附带的代码文件。请阅读手册。

票数 0
EN

Stack Overflow用户

发布于 2011-04-21 21:00:52

通常通过在当前连接上调用BeginTransaction()来启动SqlTransaction。看起来您的“生成器”使用了它生成的或随它一起交付的某个TransactionManager类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5744296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档