Пускам отчет на таблица и групирам по две колони. Искам да получа общия брой групи в резултата, за да мога да разлистя отчета. Въпреки това методът .Count() връща броя на редовете в първата група. Запитването е
return data.GroupBy(x => new { x.Item.Parent.Name, x.Date })
.Select(x => new Item
{
Parent = x.Key.Name,
Date = x.Key.Date,
PredictedSales = x.Sum(y => y.PredictedSales),
RealSales = x.Sum(y => y.ActualSales),
});
.Count() изпълнява следната заявка
select cast(count(*) as INT) as col_0_0_
from dbo.[table1] table1
left outer join dbo.[Table2] table2
on table1.Table2Id = table2.Id
and 0 /* @p0 */ = table2.Deleted
left outer join dbo.[Table3] table3
on table2.Table3Id = table3.Id
where table1.Date >= '2017-03-01T00:00:00' /* @p2 */
and table1.Date <= '2017-03-15T00:00:00' /* @p3 */
and (table1.VariancePercentage is not null)
and abs(table1.VariancePercentage * 100 /* @p4 */) <= 5 /* @p5 */
group by table3.Name,
table1.Date
Докато това, което искам, е нещо като select TOP(1) COUNT(*) OVER () FROM.
Има ли някакъв начин това да се случи с помощта на linq заявка?