24

dapper-dot-netを使用して、asp.net mvc アプリケーションの一部の領域を高速化しようとしています。私も最初にEF5コードを使用しています。

dapper-dot-net は IDbConnection の一部の拡張機能にすぎないため、そのまま使用できますか

DbContext.Database.Connection 

dapper-dot-net を使用するには? 私はそれが機能していることをテストします。しかし、これが正しい使用方法であるかどうかはわかりませんか?特に、その方法を使用する場合、Entity Framework はパフォーマンスを損なう可能性のある影響をまだ持っていますか?

4

3 に答える 3

17

Dapper を使用すると、特定のシナリオでパフォーマンスが大幅に向上する可能性があります。

EF 接続を Dapper と共有できます。ただし (問題になる可能性は低いですが) 並行性の問題に注意する必要があります (たとえば、複数のデータ リーダーを同じ接続に関連付けようとするため)。

このような問題が発生した場合は、接続DbContext.Database.Connection.ConnectionStringを共有する代わりに、接続文字列 ( ) を使用して Dapper に新しい接続を提供するオプションがあります。

于 2013-07-29T20:41:00.257 に答える
12

はい、そのように使用できます。Dapper は拡張メソッドで動作しているだけなので、コードのパフォーマンスが重要な領域に使用できます。また、コードの他の領域に引き続き EF を使用できます。まだ EF を使用しているクエリはそれほど高速ではありませんが、少なくとも Dapper を使用したクエリは高速になります。

于 2013-07-29T20:20:46.627 に答える
2

質問を再考する必要があると思います。ORM を変更してパフォーマンスを向上させることは、適切な手法ではありません。dapper が EF よりも高速で軽量であることは正しいですが、これはアプリケーションの速度を上げるために dapper を使用する方が良いという意味ではありません。EF は、キャッシュや SQL db なしなどの新しい機能を導入する必要があるパフォーマンスに苦しんでいる場合、データ層全体を処理するのに十分強力です。

EF から dapper に変更すると、どれだけ時間が節約されるかを確認する必要があります。また、キャッシングがアプリケーションにどれだけの速度をもたらすことができるか。

dapper を追加すると、他の費用がかかります。ロールバックの状況を解決する方法を保存して更新する必要があるときに、トランザクションをどのように管理しますか。作業単位とリポジトリ パターンはどうですか。

これらは、Dapper を選択する前に検討する必要がある要素です。

于 2018-05-29T08:44:50.607 に答える