DBFlute.NETの複数DB設定をつかってみた
DBFlute.NETの複数DB設定をつかってみたのでメモ。
普段Java版のDBFluteを使っていて、.NETについては無知なのでところどころつまづいてしまいました。
(やったことは、QuillとDBFluteをつかってのDB接続です。)
とりあえず動くようになりましたが、間違い等指ありましたら摘いただけると助かります
ということで複数DB接続をDBFlute.NETでやる場合に必要なこと備忘録
DBFlute.NETについてはDBFlute.NETの紹介 | DBFlute.NETにて説明があります。 また、svnリポジトリにdfnet-multipledb-quil-exampleがあります。
自動生成について
自動生成はJavaと同じようにdfprop等の設定をしてmanage.batを叩けば出力される。
- basicInfoMap.dfpropのtargetLanguageをcsharpにする
- basicInfoMap.dfpropのpackageBaseを出力するパスに設定する
- Javaでも同じですが、basicInfoMap.dfpropのprojectPrefixを設定して名前が被らないようにする
- 外だしファイルを使うときには、outsideSqlDefinitionMap.dfpropのsqlPackage = $$PACKAGEBASE$$のコメントアウトを外しておく(Javaでも一緒)
VisualStudioでの設定とか
- 外だしsqlファイルは、ExBhvに置く
- ファイルのプロパティ設定でビルドアクションを”埋め込まれたリソース”に変更する
- 埋め込まれたリソースに変更しないと、アセンブリに登録されず外だしsqlファイルが見つからないエラーが発生する
- 各DB用に生成されたフォルダ配下のAllCommon/S2Dao/XXS2DaoSettig.csのXXS2DaoSettingクラスにメソッドを追加する
public override String DataSourceName { get { return "DataSourceのid"; } }
- これを設定しないとDataSourceを使い分けることができなくなり、実行時にテーブルが無いというエラーが発生する
- これに対応するようにQuill.configには、DataSourceを2つ用意する
- 参照 Quillで複数データソース接続 - S2Container.NET