2016-05-01 6 views
2

私はASP.NETプロジェクトを作成しています。データベースと対話するために、私はEntity FrameworkとLINQを使用しています。私が知っているのはIQueryableIEnumerableよりも優れているということです。別のクエリが実行される場合。しかし私が疑問に思っているのは、私は以下のようなリポジトリとメソッドを持っているということです。.NET EFでIQueryable <Type>を返すメソッドにAsQueryable()を使用する必要があります

public IQueryable<Category> getData(){ return db.categories.AsQueryable(); } 

あなたが上見ることができるように関数の戻り値の型はすでにのIQueryableであるのに対し、私はreturn文でAsQueryableを使用して型キャストを行っています。しかし、私はわからないので、私は

repository.getData()

のようなコントローラーでその関数を呼び出す場合、それは型キャストせずにIQueryableだろう、それをやっていますか?タイプキャストAsQueryable()を削除できますか?それがなければ、IEnumerableに変換されますか? AsQueryableを削除しても同じパフォーマンスをお試しください。

+2

最も簡単な方法は、 'AsQuerable()'メソッドなしでコードを実行することです。 –

+0

その後、パフォーマンスを検査できますか? –

+1

どのような面でですか? Pouyrazogluが彼の答えで述べたように、 'db.categories'が' IQuerable 'なら、' AsQuerable() 'メソッドは冗長です。 –

答えて

3

db.categoriesが(または単に)IQueryable<Category>に由来している場合は、それを削除できます。

関連する問題