Ответ Михаила Сагаловича является правильным для данного SQL, но имейте в виду, что если несколько фруктов одного типа имеют одинаковую минимальную цену, вы получите несколько записей для этого типа.
Это может быть больше, чем вы собираетесь: захватить только один фрукт по самым низким ценам для каждого типа:
ctx.Fruits.GroupBy(f => f.Type)
.Select(g => g.OrderBy(f => f.Price).FirstOrDefault())