マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

ココで使用したので調査した情報などを纏めました。

Dapperは、Micro-ORMである。

機能

以下の機能を持つ。

クエリビルダ

SQL実行

パラメタライズド・クエリ

パラメタライズド・クエリ機能はアリ。

トランザクション

トランザクション処理に対応する。

以下のように処理すると良い。

未コミットのものはロールバックになるので、try-catchは不要。

using(var tr = cn.BeginTransaction())
{
    cn.Execute("・・・・", ・・・, tr);
    tr.Commit();
}

その他

マッピング

結果セットとBean(POCO)をマッピングする機能。

実装

主に、ADO.NET の IDBConnection に拡張メソッドを追加している。

拡張

以下の様なCRUDヘルパーがある。

更新用の拡張ライブラリ

DapperExtensions?

クエリビルダ

Dapper.Rainbow

詳細不明

Dapper.Contrib

詳細不明

自作の例

以下を参考にすると、上記は微妙らしい。

ココの処理の内容を見ると、

でSQLを生成している。

余談:

と言うことで、パラメタセットによって、SQL定義を動的に編集する方法ではなさそう。
Dapperは、パラメタセットはBean(POCO)のプロパティ ≒ 固定なので、
別の方法でSQL編集するしか無く、ParameterによってSQL定義を編集する、
動的パラメタライズド・クエリに組み込むことが不可能だった。

ログ出力

MiniProfiler?を使用してログ出力処理を実装できる。

クラスの階層構造

以下のようにORMできるが、

BA(ビジネス・アプリケーション)ではほぼ、採用しない方式。

JSONへの変換

DapperのQuery<dynamic>()の戻り値をJSONへ変換して、
サーバーをJSON吐く土管にする場合、以下のようにできる。

Oracleでの利用

参考

使用例

ADO.NET vs ORM (Entity Framework, Dapper)


Tags: :データアクセス, :.NET開発, :ADO.NET


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS