为什么我的应用程序没有看到Entity Framework模型更新

时间:2015-04-06 16:43:35

标签: asp.net-mvc entity-framework

我有一个使用Entity Framework的MVC应用程序。我需要为应用程序创建一个新的存储过程。我首先在数据库中创建了存储过程,所以我知道它存在。然后在我的项目中,我从数据库更新了模型并引入了新的存储过程。然后我创建了一个复杂类型的函数导入并保存了模型。我有一个使用该模型的服务,我可以毫无问题地引用新的复杂类型。

我遇到的问题是在运行应用程序并点击此存储过程时,出现错误,上面写着"无法找到存储过程。"

抛出错误的方法在这里:

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);
    }

我是否需要采取任何其他步骤来确保在实体框架中更新所有内容?我已经验证了数据库中存在的存储过程。我唯一能想到的是模型没有看到新的存储过程。

更新连接字符串

<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" />

更新 我运行sql server profiler,发现为什么我收到错误。当存储过程运行时,它在master数据库中运行,而不是它应运行的实际数据库。其他存储过程在正确的数据库中运行。

为什么它在master数据库而不是我想要的数据库中运行?

1 个答案:

答案 0 :(得分:0)

在调用存储过程之前,我必须重新初始化我的上下文。这就是它使用master数据库的原因。