Я относительно новичок в ASP.NET MVC, но я работал с первыми миграциями кода на некоторых базовых таблицах.ASP.NET MVC Обновить модель и сохраненную процедуру
Моя модель выглядит следующим образом
public class sp_Result {
[Key]
public string RowDesc { get; set; }
public string rowkey { get; set; }
public int rowlevel { get; set; }
public int Plan { get; set; }
}
И это порождается хранимой процедуры в мой контроллер
public ActionResult StaffPage()
{
var startlevel = new SqlParameter("rlevel",10);
var staffing = db.Database.SqlQuery<sp_Result>("exec sp_MyStoredProcedure @rlevel", startlevel);
return View(staffing);
}
Так мне нужно добавить поле «план» и обновил свою модель и хранить процедура, которая соответствующим образом генерирует эту информацию. Тем не менее, теперь я получаю прекрасный «Модель, поддерживающая« контекст, изменилась с момента создания базы данных ». Есть ли способ заставить их синхронизировать, так как я действительно не хочу обновлять таблицу, поэтому я не совсем уверен, что Code-first - это путь? Я видел здесь https://stackoverflow.com/questions/28507636/if-change-model-class-in-dbcontext-do-i-rebuild-the-database, что я могу удалить таблицу _MigrationHistory, и это заставило бы ее работать, но я не решаюсь это сделать.
Я должен добавить, что это нелокальная база данных (если это имеет значение). Есть ли способ синхронизировать мою модель с выходом моей хранимой процедуры?
Вы вызвали 'add-migration', а затем' update-database' в консоли вашего менеджера пакетов? – CodeNotFound
Каждый раз, когда я пытаюсь «Enable-Migrations» для этого конкретного DBC-контекста, он блокирует мою систему. Кроме того, является ли «update-database» действительным для результатов хранимой процедуры, а не редактируемой таблицы? Все, что я видел, это функции «Вверх»/«Вниз», которые переписывают весь пакет SP – MeanDean73
. Замечание: вы не должны ** использовать префикс 'sp_' для ваших хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) и вы рискуете столкнуться с именем когда-нибудь в будущем. [Это также плохо для производительности вашей хранимой процедуры] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Лучше просто просто избегать 'sp_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –