1

BLToolkit を使用して、ユーザー定義型を引数として出力パラメーターとして取り、それを変更する Oracle ストアド プロシージャをアクティブにしようとしています。

私はプリミティブ型でこれを行うことができました。また、手動で SetSpCommamd を呼び出すことによっても、抽象クラス生成メソッドを使用したいのですが、それを機能させることができないようです。

私が書いたコードは正しいと確信しています(プリミティブで機能します)。デバッグ中に、生成されたコードによって呼び出された SetSpCommamd が、メソッドを手動で呼び出すときとは対照的に、私が提供したものではなく奇妙なパラメーターを取得することがわかりました (希望する正確なパラメーターを取得します)。リフレクションによって生成されたコードが出力されるのを見て、何が問題なのかを確認できたらいいのにと思います。

これが機能しない理由を理解するのを手伝ってもらえますか?

4

1 に答える 1

1

問題が見つかりました (BLToolkit の潜在的なバグ)。

BLToolkit は、UDT クラスをそのままプロシージャに渡しません (代わりに、それまたは何かをフラットにして、オブジェクトの内部を渡そうとします)。オブジェクトをクラスではなく構造体に変更したところ、修正されました。

その後、クラスに戻し、BLToolkits コードの「IsScaler()」メソッドにパッチを作成しました。

これをバグとして報告します。修正されることを願っています。

于 2012-08-30T18:41:43.270 に答える