2015-04-06 4 views
0

У меня есть приложение MVC, которое использует Entity Framework. Мне нужно было создать новую хранимую процедуру для приложения. Сначала я создал хранимую процедуру в базе данных, поэтому я знаю, что она существует. Затем в моем проекте я обновил модель из базы данных и вытащил новую хранимую процедуру. Затем я создал импорт функции с сложным типом и сохранил модель. У меня есть служба, использующая модель, и я могу ссылаться на новый сложный тип без проблем.Почему мое приложение не видит обновления модели Entity Framework

Проблема, с которой я сталкиваюсь, заключается в том, что при запуске приложения и удалении этой хранимой процедуры появляется сообщение об ошибке «Не удалось найти хранимую процедуру».

Метод метания ошибку здесь:

public virtual ObjectResult<E3_Assessment_GetPDFImages_Result> E3_Assessment_GetPDFImages(Nullable<int> assessmentID) 
    { 
     var assessmentIDParameter = assessmentID.HasValue ? 
      new ObjectParameter("assessmentID", assessmentID) : 
      new ObjectParameter("assessmentID", typeof(int)); 

     return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<E3_Assessment_GetPDFImages_Result>("E3_Assessment_GetPDFImages", assessmentIDParameter); 
    } 

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

UPDATE Строка подключения

<add name="AssessmentEntities" connectionString="metadata=res://*/AssessmentModel.csdl|res://*/AssessmentModel.ssdl|res://*/AssessmentModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MyServer;initial catalog=MyDatabase;persist security info=True;user id=MyUser;password=MyPassowrd;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

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

Почему он работает в основной базе данных вместо базы данных, которую я хочу?

+0

Ваша строка подключения, пожалуйста! – ErikEJ

+0

Включили ли вы имя базы данных в хранимой процедуре? В теге USE или как часть имени таблицы? mydatabase.mytable? – jackncoke

+0

Оператор USE находится в сохраненной процедуре с правильным именем базы данных. – RUEMACHINE

ответ

0

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

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