SqlDataReader を使用して、Winform アプリにエンティティを設定しています。エンティティ クラスには、エンティティ クラスのプロパティとして設定したいデータベースにいくつかの外部キー属性があります。各プロパティは、ID および説明プロパティを持つ「属性」タイプになります。
システムの一部のユーザーはデータベースから遠く離れているため、データ アクセスのパフォーマンスは重要な考慮事項です。
単一の結果セットを返すストアド プロシージャに対して SqlCommand.ExecuteReader を複数回 (属性ごとに 1 回) 実行するか、複数の結果セットを返すストアド プロシージャに対して SqlCommand.ExecuteReader を 1 回実行し、SqlDataReader.NextResult を使用することができます。それらを移動して属性を設定します。
.NextResult でループすると、ストアド プロシージャとプロパティ割り当てのループが一致していることを確認する際に問題が発生します。proc の SELECT ステートメントの順序が変わると、winform アプリの割り当て順序がめちゃくちゃになります。
とにかく、SqlDataReader が読み取りごとにデータベースに戻る場合、SqlCommand.ExecuteReader の実行に多くの時間が追加されますか? 各属性に対して ExecuteReader を実行すると、割り当て側で物事がより明確になります。
ありがとう!