いま開発中の.net frameworkアプリケーションでは、MySql,Microsoft Jet,SqlServerなどDBを選択可能にするという仕様のため、DbProviderFactoryを使ってDBの抽象化を図るつもりなのである。
JetやSqlServerはMicrosoft開発なので特に問題ないが、Mysqlがどうか。
まずは、Mysqlの.NetFramework Driverを探す。
以前に使用したことがあるので存在するのは分かっていたが、以前にあった Mysqlのサイトに行くと、自社(?)での開発は止めてしまっていて、サードパーティー製のドライバーへのリンクが張ってある。しかも2種類。ただしそのうち1種類はリンク切れ。(大丈夫か?)
リンクが生きていた
devartへいってみるが、なんと有料!
困ったなとおもったが、基本的な機能のExpressバージョンはFreeで使えるようだ。よかった。
FAQを読むと、DbProviderFactoryで使えるようにするためには、app.configにアセンブリ情報を書かないといけいないようだ(他にもやり方はある)。早速、FAQの例をコピペして動かしてみるが、例外が起きてしまいダメ。
1時間ほど悩んだ結果、app.configに書くアセンブリ情報のバージョンをバイナリのバージョンと一致させると動いた。
FAQをコピペしたため、実際のバイナリよりバージョンが古かったのだ。
往々にしてプログラムは、こういう所でハマるのだ。