2011-04-21 102 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