minato128 blog

minato128の公開メモ帳です。

Dapper.Net を Oracle で使ってみる

オラクルで試してみたかったので、
環境用意してテストコード書いて動かしてみたら、取得件数はあってるのにマッピングされない!
あれ?どこかでなんか読んだことあるなと思ってたらコレでした。

CustomPropertyTypeMap作って、テストクラスのInitializeメソッドで設定したら無事動きました。

基本的にマッピングはプロパティ名とDBのカラム名が一致してないとダメです。
(中略)
というわけでDapperには救済策が用意されていて、マッピングルールを型毎に設定することが可能です。この辺はリリース時にはなかったんですが後から追加されてます。そしてドキュメントが一向に更新されないため、何が追加されてるのとか、はためにはさっぱり分かりません。
(中略)
方法としてはCustomPropertyTypeMapを作って、SqlMapper.SetTypeMapに渡してやればOK。CustomPropertyTypeMapではTypeとDBのカラム名が引数にくるので、そこからPropertyInfoを返してやればOK。一度定義されたマッピングファイルは初回のクエリ実行時にIL生成&キャッシュされ、二度呼ばれることはないので高速に動作します。

neue cc - Micro-ORMとC#(とDapperカスタマイズ)

環境

  • Windows7 VS2010 .NET4.0 ODP.NET4
  • WS2008R2 Oracle11gR2