2015-08-05 2 views
3

У меня есть 5 отдельных SQL-запросов, которые я выполняю по порядку в действии контроллера. Это метод я использую для их выполнения:Выполнение SQL-запросов в действии контроллера

var entity = new TestEntities(); 

entity.Database.ExecuteSqlCommand("//SQL Query"); 

Так, в принципе у меня есть пять ExecuteSqlCommand в ряд с различными запросами, которые должны выполняться в порядке, и код должен продолжать выполнять под ними. Есть ли лучший способ выполнить запросы изнутри действия контроллера? Я не уверен, что лучший способ обработки ошибок с помощью этого текущего метода.

Спасибо!

+0

Вместо этого используйте хранимую процедуру. –

ответ

2

Для начала рассмотрим создание слоя абстракции между вашим контроллером и вашей базой данных. Примером этого является репозиторий, который поможет вам при тестировании. Вы можете создавать ложные репозитории, которые вы можете использовать в своих модульных тестах, а не тестировать свою фактическую базу данных.

Вы упомянули, что у вас есть 5 различных команд базы данных для стрельбы. Посмотрите на шаблон Unit of Work, который вы можете использовать, чтобы отслеживать, что вы изменили, и применить все эти изменения к базе данных.

На веб-сайте Microsoft asp.net есть хорошая статья о implementing the repository and unit of work.

Using a repository and unit of work

Смежные вопросы