Ну пишешь руками sql и потом делаешь богопротивные вещи над объектами в памяти через linq. Ef тут мало что поменяет если тебе сложно выразимые на скл вещи нужно делать
Не, там действительно групбай стал работать как в SQL начиная с 3.x вроде. Но обычно он не особо полезен, разница по сути только в том, что теперь нужно явно указать .ToListAsync()
кто nullable включал? Как быть в случае простых классов с данными? Это для этого record придумали, чтобы конструкторы к таким классам автоматически генерировались?