У меня есть приложение 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="data source=MyServer;initial catalog=MyDatabase;persist security info=True;user id=MyUser;password=MyPassowrd;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
UPDATE Я побежал SQL Profiler сервер и обнаружил, почему я получаю эту ошибку. Когда запускаемая хранимая процедура выполняется, она запускается в основной базе данных вместо фактической базы данных, в которой она должна работать. Другие сохраненные procs работают в правильной базе данных.
Почему он работает в основной базе данных вместо базы данных, которую я хочу?
Ваша строка подключения, пожалуйста! – ErikEJ
Включили ли вы имя базы данных в хранимой процедуре? В теге USE или как часть имени таблицы? mydatabase.mytable? – jackncoke
Оператор USE находится в сохраненной процедуре с правильным именем базы данных. – RUEMACHINE