Я новичок в .NET, и мне было интересно, как работает linq, поскольку вы можете использовать множество запросов linq один за другим, но ни один из них не выполняется, пока они не используются для передачи информации или конвертирования список и т.д.
Существует два важных способа получить запрос linq, используя IQueryable<T>
, который использует фильтры, которые непосредственно связаны с Sql и 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; }
Depsite Я использую динамическую библиотеку Linq, прямой результат этого запроса находится на IQueryable<T>
, если запрос, наконец, возвращается как IEnumerable
, является ли запрос действительно фильтрованным на sql? или это в памяти?