Re: ваш первый вопрос
Когда вы идете по пути хранимых процедур, количество хранимых процедур начинает непрерывно расти на протяжении всего жизненного цикла проекта. Вне базовых операций CRUD каждая хранимая процедура, как правило, тесно связана с конкретной проблемой и не очень пригодна для повторного использования. Эмпирическое правило заключается в том, что я могу ожидать 8-12 хранимых процедур для каждой таблицы данных (исключая справочные или кодовые таблицы, такие как список штатов или стран).
Очень большое количество процедур делает соглашения об именах очень важными, так что вы можете найти что-нибудь без постоянного повторного сканирования всего списка 400-500 процедур.
Re: ваш второй вопрос
С SQL, написанным внутри строк внутри C # или VB.NET, происходит много ужасных вещей - это подвержено ошибкам, безобразно и т. Д.
Linq, nHybernate и многие другие существуют, но «количество концептов» (количество вещей, которое вам нужно научиться, чтобы начать работать), намного выше, чем обучение написанию хорошего исполнителя хранимых процедур на C #. *