質問: 私は最近Dapperという名前のマイクロORMについて学び始めました。私たちは通常、T-SQLとC#コードが混在するのを避けるために、MSSQLデータベースのストアドプロシージャに大いに依存しています。 Dapperとストアドプロシージャの経験は何ですか? DapperはDappersのすべての利点\機能を完全に利用するためにインラインT-SQLを必要としますか?
回答: > Dapperとストアドプロシージャの経験は何ですか? > > Dapperは最終的に`ADO.Net` APIを内部的に使用するオブジェクトマッパーですが、クエリを高速化するために特定のデータ構造をキャッシュしますが、ストアドプロシージャでは非常に効率的です。 > DapperはDappersのすべての利点\機能を完全に利用するためにインラインT-SQLを必要としますか? > > いいえ、ストアドプロシージャはあらかじめコンパイルされているため、Sqlテキストクエリとは異なり、最適な実行計画はSQL Serverに既にキャッシュされているため、すべての要求に対してハード解析の対象範囲はありません。 一言で言えば、ストアドプロシージャは、実際には、dapperとSQlサーバーの組み合わせで使用する理想的なメカニズムです。 * パフォーマンス * クリーンで一貫性のあるコード * 複雑なデータベース操作を行うことは、TVPの使用のように、1回の呼び出しで多数のデータを取り、複数のネットワーク要求ではなくテキストクエリを使用して作業することができます