С# диспетчер транзакций

Привет, у меня есть генератор, который сделал для меня некоторый автоматизированный код (создание всех get, set и т. д.), структурированный базой данных, в этом коде есть фрагмент кода, который выглядит следующим образом:

SqlTransaction transaction = TransactionManager.GetTransaction();

Я добавил ссылку и импортировал using System.Transactions; в начало файла вручную, потому что генератор кода никогда этого не делал. После импорта это удалило TransactionManager error, которое я получал, но теперь я получаю сообщение об ошибке .GetTransaction(); из того, что я исследовал, в TransactionManager нет такого метода.
Кто-нибудь знает, что должно быть вместо этого код (у генератора есть код, который нужно заменить из-за ошибок, я думаю, это один из таких случаев...). Мы ценим любые предложения! Заранее спасибо!


person Lord-Link    schedule 21.04.2011    source источник
comment
Вам нужно указать, какой генератор вы использовали.   -  person jgauffin    schedule 21.04.2011


Ответы (3)


Этот ответ предполагает, что генератор, который вы используете, был встроен в дом, и вы модифицируете его сейчас - если это был внешний генератор кода, вам следует проверить руководство по нему в отношении того, какие ссылки вам нужны.

Класс TransactionManager в System.Transactions на самом деле не создает и не зачисляет транзакции для вас. Он просто предоставляет информацию о текущих транзакциях. Из MSDN:

Этот класс содержит статические свойства и методы, используемые для получения информации о параметрах транзакции по умолчанию.

Вместо этого я думаю, что вы хотите:

Погуглив TransactionManager, кажется, что люди обычно пишут свои собственные классы с этим именем, которые делают такие вещи, как предлагают метод GetTransaction() - возможно, поэтому у генератора такое имя?

person David Hall    schedule 21.04.2011
comment
Это внутреннее приложение, но не созданное моей проектной группой, было предоставлено нам для использования, но создатель сейчас в отпуске, и руководства нет. Мы не пытаемся работать с настоящим генератором, нам просто нужно было использовать его для упрощения создания всех типов данных для базы данных. - person Lord-Link; 21.04.2011
comment
@Lord-Link в этом случае, я думаю, вам нужно найти, в каком пространстве имен находится TransactionManger из вашего генератора, и включить его, потому что это не TransactionManager из System.Transactions - person David Hall; 21.04.2011

Добавление только некоторых пространств имен Transaction не должно помочь. Вам, вероятно, понадобятся некоторые базовые библиотеки DLL или файлы кода, поставляемые с генератором. Прочтите руководство.

person CodingBarfield    schedule 21.04.2011

Обычно вы запускаете SqlTransaction, вызывая BeginTransaction() в текущем соединении. Похоже, ваш «Генератор» использует некоторый класс TransactionManager, который он генерирует или поставляется с ним.

person 0x434D53    schedule 21.04.2011