0

こんにちは私はデータベースによって構造化された自動コード(すべてのget、setなどを作成する)を作成したジェネレーターを持っています。このコードには次のようなコードがあります。

SqlTransaction transaction = TransactionManager.GetTransaction();

using System.Transactions;コードジェネレーターがこれを行ったことがないため、参照を追加し、ファイルの先頭に手動でインポートしました。TransactionManager errorインポートすると、これにより取得していたものが削除されました.GetTransaction();が、調査した結果からエラーが発生しました。そのような方法はありませんTransactionManager
誰かがこのコードの代わりに何をすべきかについて何か手がかりを持っていますか(ジェネレーターにはエラーのために置き換える必要のあるコードがあります、私の推測ではこれはそれらのケースの1つです...)。任意の提案をいただければ幸いです!前もって感謝します!

4

3 に答える 3

2

この回答は、使用しているジェネレーターが社内で構築されており、現在変更していることを前提としています。外部コードジェネレーターの場合は、必要な参照についてマニュアルを確認する必要があります。

TransactionManagerSystem.Transactionsのクラスは、実際にトランザクションを作成したり、トランザクションに参加したりすることはありません。現在のトランザクションに関する情報を提供するだけです。MSDNから:

このクラスには、デフォルトのトランザクションオプションに関する情報を取得するために使用される静的プロパティとメソッドが含まれています。

代わりに、次のいずれかが必要だと思います。

グーグルTransactionManagerは、一般的にGetTransaction()メソッドを提供するようなことを行うこの名前で独自のクラスを作成しているようです-これがジェネレーターがこの名前を持っている理由である可能性がありますか?

于 2011-04-21T12:59:27.800 に答える
0

一部のトランザクション名前空間を追加するだけでは役に立ちません。ジェネレータに付属しているベースDLLまたはコードファイルがおそらく必要になります。マニュアルをお読みください。

于 2011-04-21T12:59:50.300 に答える
0

通常、現在の接続でBeginTransaction()を呼び出すことにより、SqlTransactionを開始します。「ジェネレータ」は、生成する、または一緒に配信されるTransactionManagerクラスを使用しているようです。

于 2011-04-21T13:00:52.150 に答える