You can use the group by constant trick to get all the aggregates with single SQL query (and shared complicated filter):
var result = dbSet
.Where( <very complicated conditions> )
.GroupBy(e => 1) // aribitrary value
.Select(g => new
{
CountA = g.Count(),
SumB = g.Sum(e => e.EntityB.PropertyB),
AverageC = g.Average(e => e.EntityC.PropertyC),
})
.FirstOrDefault();