データベースからいくつかのレコードをフェッチし、Gridview などのデータ コントロールにバインドするために UI に渡すメソッドが BLL にいくつかあり
ます。
私の質問は、どちらが私にとってより良いのか、そしてその理由は何ですか? 実際、私はこれら 2 つのタイプの違いを知りませんし、どちらがどの状況に最適なのかもわかりません。IQueryable<t>
Ilist<t>
ありがとうございました
データベースからいくつかのレコードをフェッチし、Gridview などのデータ コントロールにバインドするために UI に渡すメソッドが BLL にいくつかあり
ます。
私の質問は、どちらが私にとってより良いのか、そしてその理由は何ですか? 実際、私はこれら 2 つのタイプの違いを知りませんし、どちらがどの状況に最適なのかもわかりません。IQueryable<t>
Ilist<t>
ありがとうございました
違いはIList<T>
、結果の実際のリストを表すことです。それは「実体化」され、データベースからメモリにフェッチされます。(理論的には、もちろん単なるインターフェースです-それでもすべてを延期することができます...)
IQueryable<T>
クエリを表します。たとえば、後で追加のクエリ ビットを作成することもできます。その後、結果を求めることでクエリを評価できます。これは遅延実行を使用し、実際に必要な場合にのみ結果を要求します。
どちらを返す必要があるかについては... UI に直接バインドするだけの場合は、それをリストに変換して、クエリが実際に実行されるタイミングをより細かく制御できるようにすることをお勧めします。一方、クエリを微調整できるようにしたい場合は、を使用IQueryable<T>
すると、呼び出し元の柔軟性が向上します。
ICollection または IList をお勧めします
IQueryable - データの型がわかっている特定のデータ ソースに対してクエリを評価する機能を提供します。
いつでも ICollection.AsQueryable() を呼び出すことができます。