質問: 私はDapperの使用をいつ考えるべきかについて理解したいと思います。また、Dapper Vs ADO.NETの比較の長所と短所を理解したいと思います
回答: Dapperは単なるツールです。それ*は*何ですか? * クエリを正しくパラメータ化することを容易にする * クエリ(スカラー、複数行、マルチグリッド、無結果)を実行するのが簡単になります * 結果をオブジェクトに変換することを容易にする * 非常に効率的かつ迅速に それ*がしない*ことは: * あなたのクラスモデルを生成する * あなたのための質問を生成する * オブジェクトとそれらの変更を追跡するので、 `SubmitChanges()` (または何でも)を呼び出すことができます。 raw dapperライブラリはCRUD機能を提供しませんが、 "contrib"追加パッケージ*は*基本的なCRUDを提供*し*ます。 基本的には、フルウェイトのORMではありませんが、ORM *と*の競合をせずにクエリを実行したり、ORMに関連するオーバーヘッドを支払うだけの場合は、かなり優れています。あなたがSQLを知らないなら、生のライブラリはおそらくあなたのためではないでしょう(contribはうまくいくはずです)。しかし、多くの人はSQLを*知っている*だけでなく、SQL **をコントロールし**たいORMに最適化されていないあなたの意図の解釈が出るようにするなど)。 まとめると、理由は次のようになります。 * 最低限のオーバーヘッドで優れた未処理の実行パフォーマンスが必要な場合 * SQLを制御できるようにしたい * あなたは完全な脂肪ORMのオブジェクト追跡機能を必要としない、または必要としない "vs ADO.NET"について: * 生のADO.NETには(あなたがそれらを心配することなく、内部でDapperの取引という)について覚えておくことはもっと**たくさん**書くためのコードとエッジ例多くが含ま * 実際には高速ではありません.dataは、クエリに必要なものを実行したら、戦略を保存して再利用するための多くのメタプログラミングを行います * 未処理のADO.NETで利用できないプロバイダ固有の機能(たとえば、 `SqlGeometry`データの受け渡しやフェッチ)を使用している場合は、 *直接*ダウロードできません。あなたのシナリオを扱いますが、それは難しくありません(特定の`SqlGeometry`例は追加の`SqlGeometry`ライブラリによって処理されることに注意してください)