TGViewer
C# | Вопросы собесов C# | Вопросы собесов @easy_c_sharp · 5.01K subscribers
Post #1714 1.18K
🤔 Что такое IQueryable?

Это интерфейс, который наследуется от IEnumerable и предоставляет функциональность для оценки запросов к источнику данных. Основное отличие IQueryable от IEnumerable заключается в том, что IQueryable позволяет запросы быть построенными и выполненными отложенно на стороне источника данных, такого как база данных. Это обеспечивает большую эффективность, поскольку именно необходимые данные извлекаются и передаются, вместо извлечения всего объема данных и их фильтрации на стороне клиента.

🚩Как работает IQueryable

Использует LINQ-провайдеры, которые транслируют выражения LINQ в запросы, специфичные для источника данных (например, SQL для баз данных). Это позволяет делать запросы более оптимальными, так как они обрабатываются средствами самого источника данных.

🟠Отложенное выполнение (Deferred Execution)
Запросы IQueryable не выполняются, пока не будут перечислены. Это позволяет системе строить более сложные запросы перед их выполнением.

🟠Составление запросов
Вы можете построить запрос по частям, добавляя условия на каждом шаге. Финальный запрос выполняется только при перечислении результатов, что позволяет избежать ненужной нагрузки на источник данных.

🟠Преобразование запросов
LINQ-провайдеры могут преобразовать выражения запросов IQueryable в оптимизированные запросы к базе данных или другим источникам, что позволяет выполнять сложные операции на стороне сервера, такие как сортировка, группировка и агрегирование.

using (var context = new MyDbContext()) // MyDbContext — это контекст Entity Framework
{
IQueryable<Product> query = context.Products.Where(p => p.Price > 100);

// Запрос еще не выполнен, можно добавить другие условия
query = query.OrderBy(p => p.Name);

// Запрос выполняется только при перечислении
foreach (var product in query)
{
Console.WriteLine($"{product.Name}: {product.Price}");
}
}


Ставь 👍 и забирай 📚 Базу знаний
  • 🔥 2
More from @easy_c_sharp
  1. Oct 17, 2026🤔 Что такое виртуальный метод? Виртуальный метод (virtual) — это метод, который можно пер…
  2. Oct 17, 2026🤔 Что такое медиатор? Это паттерн проектирования поведенческих шаблонов, который позволяе…
  3. Oct 16, 2026🤔 Как отменить Task? Используется CancellationToken: 1. Создаётся CancellationTokenSource…
  4. Oct 16, 2026🤔 Что такое .NET стандарт? .NET Standard — это спецификация API, которая определяет набор…
  5. Oct 15, 2026🤔 Что такое паттерн DDD? Это подход к разработке, фокусирующийся на модели домена и бизне…
  6. Oct 15, 2026🤔 Что такое Generic-и? Термин "Generic" (общий тип) относится к функциональности, позволя…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →