質問: 私はdapper ormを試していましたが、最近はasyncqueryのサポートを追加しました。私はそれについてそれをgoogled。あなたのサイトに大量のトラフィックがある場合は素晴らしいです。私はpostgressqlとdapperでそれを試していました。今、私は単純な接続文字列を渡している場合、それはうまく動作します。しかし、私はそれを使用したい場合は、非同期の接続文字列が必要な記事のカップルごとに真ではないです。 さて、PostgreSQLとnpgsqlの使い方はわかりません。ここでは、 作成者がSql Serverでそれを行う方法を説明するための完全な記事です。 私がPostgreSQLで同じことをしたいのであれば、私は何をする必要がありますか? それ以上の必要条件があれば教えてください。
回答: この記事の著者は多少間違っています - .NET 4.5では、 AsynchronousProcessingプロパティは不要になったため無視されます。特別な接続文字列を使用せずにSqlClient のAsyncメソッドを呼び出すことができます。 操作が非同期で実行されるかどうかは、データベースプロバイダによって異なります。たとえば、 DbCommand.ExecuteDbDataReaderAsyncの既定の実装では、実際に同期的に実行され、呼び出し元のスレッドがブロックされます。 SqlCommandはこのメソッドをオーバーライドし、非同期に実行します。 残念ながら、NpgsqlCommandはこのメソッドをオーバーライドしないので、同期実行のみが残されます。