私が取り組んでいる小さな Web アプリケーションは、ますます大きくなっています。フォームを送信したり、他の関数を呼び出したりするときに、ID または Model クラスのインスタンス全体で構成されるパラメーターを渡したことに気付きました。
パフォーマンスの観点から、Model オブジェクト全体 (値が入力されている) を渡す方が良いですか、それとも ID を渡してからデータベースから取得する必要がありますか?
ありがとう!
私が取り組んでいる小さな Web アプリケーションは、ますます大きくなっています。フォームを送信したり、他の関数を呼び出したりするときに、ID または Model クラスのインスタンス全体で構成されるパラメーターを渡したことに気付きました。
パフォーマンスの観点から、Model オブジェクト全体 (値が入力されている) を渡す方が良いですか、それとも ID を渡してからデータベースから取得する必要がありますか?
ありがとう!
パフォーマンス上の利点のために、多くのことができます。一般的なことは次のとおりです。
1) LINQ の使用 (skip および take メソッド) で、カスタマイズされたページングなど、必要な数のレコードをフェッチします。
2)コントローラーでデータキャッシュを使用し、ビューにバインドされているリストのキャッシュ依存関係を使用します
3) コンパイル済みクエリを使用してレコードを取得します。(こちらをご覧ください)
これらすべてを適用して、マーク可能なページの読み込み速度を確認してください。
編集: ID の推奨事項については、この質問では、ID のみを渡し、データベースからモデルの残りをフェッチするか、塗りつぶされたモデルを渡す場合、両方とも同じパフォーマンスへの影響になります。
ユースケースからこれらを考慮することが常に最善です。たとえば、ID でアイテムを取得したい場合、ID が入力されたオブジェクト全体ではなく、ID を渡します。
私は WCF サービスを使用して BLL をホストし、DAL にインターフェイスするため、データの受け渡しはコストがかかるため、慎重に行っています。
オブジェクトを更新する必要がある場合は、オブジェクトを渡します。オブジェクトに対して削除や取得などのアクションを実行したい場合は、ID を使用します。
シ
まだ存在しない問題を解決しないでください。ツールを使用してパフォーマンスの問題を測定し、解決を試みます。