ODP.NETのBindByName対策

 先日間に合わせの対応をしましたが、やはり自動生成のコードを書き換えるのは無理がある。ということで、よりスマートな対応を思いつきました。
 生成される〇〇AdapterというクラスはOracleCommandオブジェクトをいくつかもっています。これらのBindByNameへtrueを設定出来れば問題は解決できます。Commandsプロパティがの修飾子がprotectedなので…。

namespace Something{
  public class ExtendedAdapter : GeneratedAdapter {
    public ExtendedAdapter : base() {
      foreach(OracleCommand command in base.Commands) {
        command.BindByName = true;
      }
    }
  }
}

 以上でいけるはず。〇〇Adapterを継承しているので、デザイナでコンポーネントとしても扱えます。機会があればどうぞご利用ください。