У меня есть таблица, содержащая около 15 различных полей, некоторые из которых - JobID (целочисленное поле), Cost (целочисленное поле) и LastUpdated (поле DateTime)
JobID Cost LastUpdated
1 10 10-July-2011
1 15 11-June-2011
2 25 5-May-2011
1 15 12-April-2011
Можно ли написать один запрос LINQ, чтобы получить сумму затрат для идентификатора задания = 1, а также дату последнего возникновения такой стоимости?
Пример вывода запроса для приведенных выше примеров данных выглядит следующим образом:
40 , 10-july-2011
В настоящее время я делаю это с двумя разными запросами linq, такими как этот, в результате чего в данном конкретном случае происходит два обращения к базе данных с веб-сайта.
//for last updated
(from row in MyTable where row.JobID == 1
orderby row.LastUpdated descending
select row.LastUpdated).First()
//for sum of cost
(from row in MyTable
where row.JobID == 1
select row.Cost).Sum()
Будет ли один запрос linq лучше в таком случае? Подобные случаи во время загрузки страницы приведут к нескольким попаданиям в базу данных, всего около 18, к 9 различным таблицам. Объединяя сумму и дату последнего обновления в одном запросе, я пытаюсь уменьшить количество посещений до 9, по одному для каждой таблицы.
Спасибо за ваше время ...