EFでは、インデックスを処理する必要がある場合、エンティティコレクションをリストに変換する必要があります。IQueryable
またはIEnumerable
はインデクサを実装しません(遅延実行メカニズムのため意味がありません)。インデックスを使用するためにかなり大きなコレクションをToList
で使用すると、重いものになります。行番号によるエンティティ検索
これは、時には行番号(ID /プライマリキーではない)でエンティティを検索する必要がある理由です。たとえば、レコードが1つあり、行番号(ソートされたテーブルの位置)を取得して、次のレコードを取得したいとします。
これはEntity Frameworkで実現できますか?私はこれを行うためにSQLクエリを送信することができますが、LinqishとEF固有のアプローチがあれば興味があります。
あなたは 'ElementAt()'メソッドとこのリンクを試してみましたか:https://stackoverflow.com/questions/2471588/how-to-get-index-using-linq? –
@ Tim.Tang:それは話題の方法です。 – Arrrr
大きなリストがあり、行番号で検索する必要がある場合は、クエリでSkip/Takeを使用することを検討してください。 – Smit