私は.NETの初心者ですが、linqはどのように機能するのか疑問に思っていました。これは、多くのlinqクエリを次々に適用できるためですが、情報の転送やリストへの変換に使用されるまで、実際には実行されません。など。linq
クエリを取得するには、SQLに直接whereフィルターを適用する2つの重要な方法と、IQueryable<T>
すべてのレコードを取得してメモリ上で処理するIEnumerableがあります。ただし、このコードを見てみましょう。
//Linq dynamic library
IQueryable<Table> myResult = db.Categories
.Where(a => a.Name.Contains(StringName))
.OrderBy("Name")
.Skip(0)
.Take(10);
if (myResult != null)
{
return myResult.AsEnumerable();
}
else
{ return null; }
私がLinqダイナミックライブラリを使用している場合、このクエリからの直接の結果が取得されIQueryable<T>
ます。クエリが最終的にとして返される場合、クエリはIEnumerable
実際にSQLでフィルタリングされていますか?それともメモリにありますか?