私は自分のページで(それが不可能でない限り)を使用してすべてGridViews
をバインドするなどを使用しました。最近、私はすべてのコントロールをプログラムでバインドし始めました。一部の人は同意しないかもしれませんが、私はこれがはるかにクリーンで簡単だと思います。DetailViews
ObjectDataSource
ObjectDataSource
プログラムで行うのと同様に、明らかにバインドには長所と短所があります。
GridViewをプログラムでバインドするとします(たとえばGridView1.DataSource = SomeList
)。GridViewのページを変更するときは、これもコーディングする必要があります。ページが変わるたびに、GridView1.DataSource = SomeList
もう一度電話する必要があります。明らかに、ObjectDataSource
私はこれを行う必要はありません。私は通常、SomeList
オブジェクトをViewStateに貼り付けているので、ページを変更するときに毎回データベースにアクセスする必要はありません。
私の質問は:これはObjectDataSourceがどのように機能するのですか?データをViewStateに保存し、.Select
メソッドを呼び出さない限りデータベースに再度アクセスしませんか?私は自分のアプリケーションから最高のパフォーマンスを引き出し、データベースにできるだけ少ない回数アクセスするのが好きですが、ViewStateに巨大なリストを保存するというアイデアはあまり好きではありません。これを行うためのより良い方法はありますか?ユーザーごとのキャッシュは良い考えですか(または可能ですか)?巨大なリストをViewStateに保存する代わりに、毎回データベースにアクセスするだけでよいでしょうか。ViewStateを使用するよりも、データベースにアクセスする方が良い場合がありますか?