Я рассмотрел использование dapper
, но мне все еще не нравится идея использования встроенного SQL. Есть ли какие-либо мысли только о stored procedures
поэтому в случае возникновения проблемы с запросом ему не нужна recompilation
, а просто изменение stored procedure
в базе данных. Существуют ли какие-либо альтернативы, такие как сохранение всех SQL queries
в собственной библиотеке классов?
Dapper поддерживает оба варианта и не имеет никакого мнения по этой теме.
Ваш вопрос предполагает, что развертывание вашей кодовой базы сложно. Если это код на стороне клиента, это может иметь смысл. Для серверного кода обычно проще повторно развертывать приложение, чем изменять хранимую процедуру - в идеале 1 клик через что-то вроде TeamCity. Конечно, ваши хранимые процедуры также должны иметь управление процессом / развертыванием.
Наличие SQL в библиотеке классов не позволит вам много купить: вам все равно нужно повторно развернуть, чтобы получить изменения. Конечно, имеет смысл иметь код, ориентированный на данные в отдельных сборках, с кодом UI (etc), но это решение локальной архитектуры.