Агрегатные операции

Данное руководство устарело. Актуальное руководство: Руководство по Entity Framework Core

Последнее обновление: 31.10.2015

Linq to Entities поддерживает обращение к встроенным функциями SQL через специальные методы Count, Sum и т.д.

Количество элементов в выборке

Метод Count() позволяет найти количество элементов в выборке:

using(PhoneContext db = new PhoneContext())
{
    int number1 = db.Phones.Count();
    // найдем кол-во моделей, которые в названии содержат Samsung
	int number2 = db.Phones.Count(p => p.Name.Contains("Samsung"));

    Console.WriteLine(number1);
    Console.WriteLine(number2);
}

Минимальное, максимальное и среднее значения

Для нахождения минимального, максимального и среднего значений по выборке применяются функции Min(), Max() и Average() соответственно. Найдем минимальную, максимальную и среднюю цену по моделям:

using(PhoneContext db = new PhoneContext())
{
    // минимальная цена
    int minPrice = db.Phones.Min(p=>p.Price);
    // максимальная цена
    int maxPrice = db.Phones.Max(p=>p.Price);
    // средняя цена на телефоны фирмы Samsung
    double avgPrice = db.Phones.Where(p=>p.Company.Name=="Samsung")
						.Average(p => p.Price);

    Console.WriteLine(minPrice);
    Console.WriteLine(maxPrice);
    Console.WriteLine(avgPrice);
}

Сумма значений

Для получения суммы значений используется метод Sum():

using(PhoneContext db = new PhoneContext())
{
	// суммарная цена всех моделей
    int sum1 = db.Phones.Sum(p => p.Price);
	// суммарная цена всех моделей фирмы Samsung
    int sum2 = db.Phones.Where(p=>p.Name.Contains("Samsung"))
						.Sum(p => p.Price);
    Console.WriteLine(sum1);
    Console.WriteLine(sum2);
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850