Dapper.Net を Oracle で使ってみる
- SamSaffron/dapper-dot-net · GitHub
- dapper-dot-net - Simple SQL object mapper for ADO.NET - Google Project Hosting
オラクルで試してみたかったので、
環境用意してテストコード書いて動かしてみたら、取得件数はあってるのにマッピングされない!
あれ?どこかでなんか読んだことあるなと思ってたらコレでした。
CustomPropertyTypeMap作って、テストクラスのInitializeメソッドで設定したら無事動きました。
基本的にマッピングはプロパティ名とDBのカラム名が一致してないとダメです。
(中略)
というわけでDapperには救済策が用意されていて、マッピングルールを型毎に設定することが可能です。この辺はリリース時にはなかったんですが後から追加されてます。そしてドキュメントが一向に更新されないため、何が追加されてるのとか、はためにはさっぱり分かりません。
(中略)
方法としてはCustomPropertyTypeMapを作って、SqlMapper.SetTypeMapに渡してやればOK。CustomPropertyTypeMapではTypeとDBのカラム名が引数にくるので、そこからPropertyInfoを返してやればOK。一度定義されたマッピングファイルは初回のクエリ実行時にIL生成&キャッシュされ、二度呼ばれることはないので高速に動作します。
環境
- Windows7 VS2010 .NET4.0 ODP.NET4
- WS2008R2 Oracle11gR2