Как перенести этот код из EF в хранимые процедуры ADO.net?
Вы получили очень мало ответов, поскольку большинство из нас уходит от хранимых процедур.
Две большие причины для этого:
Контроль над бизнес-логики
Имея всю бизнес-логику в одном месте позволяет легко считывать код, и, следовательно, поддерживать приложения. т. е. при программировании вы получаете лучший поток muc.
Если вы разложили бизнес-логику между SP и .NET-кодом, вы каждый раз должны ментально сдвигать (сохранять состояние) для переключения между кодом и SP.
Прост в проверке
Тестирование важно. Специально для приложений, которые имеют план обслуживания.
Для .NET есть несколько инструментов для тестирования вашего кода. Все можно тестировать изолированно (без внешних зависимостей) с небольшими усилиями, и есть несколько статей, описывающих различные методы тестирования.
Тестирование хранимых процедур в изоляции затруднено.
Myth: Хранимые процедуры выполняются быстрее, чем SQL-запросы.
Сегодня хранимые процедуры не имеют прироста производительности по параметризованным запросам (т. Е. Запросы, которые используют аргументы как @userName
), как это было пару лет назад (SQL Server 2000 и ниже). Они должны иметь аналогичную производительность, так как план выполнения теперь сохраняется и для параметризованных запросов.
Однако, если у вас есть логика в вашем SP: s, обрабатывающая результат из нескольких запросов, они имеют лучшую производительность, так как не требуется обратного перехода между вашим приложением и сервером базы данных. Но его можно легко компенсировать с помощью архитектуры приложения.
Заключение
Подумайте дважды, прежде чем идти по этому пути. Обычно это не стоит. То, что вы получаете (деньги) за меньшее количество циклов ЦП, как правило, намного меньше, чем количество часов, затрачиваемых на создание и обслуживание приложения.
Тем не менее, хранимые процедуры могут быть использованы, как указано здесь: http://msdn.microsoft.com/en-us/data/gg699321.aspx
Использование хранимых процедур диктуется нашей организации, мы должны использовать их. Нужна идея организовать DAL для хранимых процедур. – Chaka
Показать менеджеру этого вопроса. Это действительно устаревшая стратегия принудительного использования хранимых процедур. – jgauffin
Не могли бы вы создать еще один слой абстракции, чтобы создать реализацию, которая использует ADO.NET. –