質問: 私の読んだところでは、DapperはもっとSQLに優しいと思われますが、Entity Framework(EF)は生のSQLを許可します。私は通常SQLを使用しますが、私はEFの中のいくつかを好きです。私のクエリの多くはかなり複雑で、複数のデータベースとデータベースエンジンをカバーしており、ほとんどが単純なCRUDだけではありません。 SQLを使用する場合、オブジェクトの処理方法の違いは何ですか?私がクエリを発行するとき、何かが戻ってきて、それを`` `List`型に割り当てると、どちらも同じですか? 私はASP.NET Core 1.xを使用しています。
回答: EFを使用してSQLリクエストを発行している場合は、実際にEFを使用していません。呼び出しはADOに相当する行の行であり、定義して維持する結果オブジェクトの読み込みは簡単です。多くの人々がEFを使いますが、生のSQLをやりたい時にはDapperを使います。 Dapperは、結果セットのPOCOへのマッピングをキャッシュするため、後続のクエリがより高速に実行されます。私はEFがこれをしているとは思わない。また、Dapperではパラメータ処理が*はるか*に優れています。 しかし、あなたはまだSQLで文字列リテラルに固執しています。すべてのエラーは実行時エラーです。結果POCOを記述して維持する必要があります。私はあなたがQueryFirst (免責事項:私が書いた)を使用すると、あなたはもっと幸せになり、もっと長く生きると主張します。あなたのSQLを.sqlファイルに入れ、あなたの入力時に構文が検証されます。クエリ結果からデザイン時に生成されたPOCO。あなたのクエリは継続的に統合テストされており、すぐに文書化される*その他多数のメリットが*あります。