Честно говоря, я не знаю, что происходит в FetchAllOrders - он может быть запрограммирован на хорошее поведение.
На практике я видел, что статические классы плохо используются для поддержания инфраструктуры, необходимой для доступа к данным. Я говорю «плохо», потому что эти реализации (которые я видел) не были сделаны потокобезопасными. Когда код был развернут в многопользовательской среде (например, веб-приложении), он взорвался.
- Используйте статические классы для классов, которые не содержат состояния (и в результате являются потокобезопасными). Классы только с методами, например.
- Используйте статические классы для классов, в которых предполагается сделать последовательный доступ с блокировками (threadsafe).
- Использование статических классов в одноразовом коде, чтобы избежать накладных расходов на конструирование / обслуживание / передачу экземпляров.
Посмотрите на среду .net и посмотрите, какие классы Microsoft сделала статичными, и подумайте, почему.