ひっさびさにC#でコード書いてて、DBはACCESSなんだけどもOleDbCommandとかExecuteNonQueryとか書かされるのもつらいのでよさげなORM探してたらDapperが一番有名そうだったので使ってみた。
概ね使いやすいんだけども、クエリの戻り値がデフォルトだとobject/dynamicになってて、フィールドへのアクセスがプロパティになるので使いづらいことがあった。
classとかでmappingしてるならともかく、今回使う古の時代から代々継承されてきたテーブルだと、金額1、金額2、~金額99みたいなフィールド名があり、しかも金額nの何個目まで入っているかは個数というフィールドに入っているという、cの配列やってんじゃねえんだよみたいな感じのテーブルがあり、プロパティアクセスでは太刀打ち出来なくてどうしたらいいか途方に暮れていたけど、こういうときはテストみたらなんか書いてあるだとと思ってみてみたらちゃんと書いてあった。
結論
https://github.com/StackExchange/dapper-dot-net/blob/master/Tests/Tests.cs#L1658
asでもキャストでもいいけどIDictionary<string, object>でKey/Valueでアクセスできるっぽくて、実際やってみたら最強伝説だった。
Dapper、いいですね。
- 作者: Ian Griffiths,鈴木幸敏,風間一洋,木村英一,黒川利明,頃末和義,佐藤嘉一,出葉義治,西山博泰,稲垣達夫
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/11/29
- メディア: 大型本
- この商品を含むブログ (3件) を見る
- 作者: ハーバート・シルト,エディフィストラーニング株式会社矢嶋聡
- 出版社/メーカー: 翔泳社
- 発売日: 2010/12/03
- メディア: 大型本
- 購入: 5人 クリック: 55回
- この商品を含むブログ (6件) を見る
C#実践開発手法 デザインパターンとSOLID原則によるアジャイルなコーディング
- 作者: ゲイリーマクリーンホール
- 出版社/メーカー: 日経BP社
- 発売日: 2015/06/25
- メディア: Kindle版
- この商品を含むブログを見る