0

Я относительно новичок в 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, и это заставило бы ее работать, но я не решаюсь это сделать.

Я должен добавить, что это нелокальная база данных (если это имеет значение). Есть ли способ синхронизировать мою модель с выходом моей хранимой процедуры?

+0

Вы вызвали 'add-migration', а затем' update-database' в консоли вашего менеджера пакетов? – CodeNotFound

+0

Каждый раз, когда я пытаюсь «Enable-Migrations» для этого конкретного DBC-контекста, он блокирует мою систему. Кроме того, является ли «update-database» действительным для результатов хранимой процедуры, а не редактируемой таблицы? Все, что я видел, это функции «Вверх»/«Вниз», которые переписывают весь пакет SP – MeanDean73

+1

. Замечание: вы не должны ** использовать префикс '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_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –

ответ

0

Так что я просто удалил таблицу _MigrationHistory. Починил это.