Создание хранимой процедуры изнутри ASP.NET MVC - PullRequest
0 голосов
/ 09 ноября 2011

Одним из требований к приложению ASP.NET MVC (3), над которым я работаю, является то, что оно должно иметь возможность создавать и заполнять все необходимые таблицы базы данных и т. Д., Если оно настроено на использование пустой базы данных.

Поскольку это стандартное приложение ASP.NET MVC3, оно использует стандартные таблицы аутентификации (aspnet_*), а также кучу хранимых процедур и прочего.

Сейчас я пытаюсь выполнить следующее:создание таблиц путем миграций (через MigratorDotNet) одна за другой по мере необходимости (до сих пор только aspnet_Users), надеясь, что они не все нужны;другие вещи, которые мне понадобятся, включают в себя определенные хранимые процедуры, такие как CheckSchemaVersion.

Как их можно создать из внутри приложения ASP.NET MVC?

У меня также есть дамп SQL пустой базы данных ASP.NET MVC (поэтому он создает все таблицы и хранимые процедуры) для извлечения соответствующего SQL-кода.В крайнем случае, если я могу как-то запустить это из своего приложения, этого может быть достаточно в качестве решения.

Если это имеет значение, я использую ActiveRecord (поддерживаемый NHibernate) с SQL Server 2008 Express.

1 Ответ

0 голосов
/ 01 июня 2012

Это действительно возможно.Код доступен в моем приложении Syzite с открытым исходным кодом (отметка AdminController.createAspNetStoredProcedures()).

Решение было следующим:

  • Сохранитьпроцедуры в текстовый файл на сервере
  • Итерация по всем строкам
  • Поиск каждого набора CREATE PROCEDURE ... )\n в качестве вызова генерации процедуры
  • Создание System.Data.Linq.DataContext экземпляра
  • Звоните instance.ExecuteCommand с кодом CREATE PROCEDURE.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...