我有一个使用WCF RIA实体框架的Silverlight 4应用程序。
突然有一些(我认为3)存储过程停止工作。每个用户重新编译同样的问题当Silverlight应用程序尝试执行相关查询时,所有用户都会收到错误消息。
查询'SomeStoredProcedure'的加载操作失败。一个错误 执行命令定义时发生。看到内心 细节例外。 InnerException消息:列名无效 'someColumn'。
在 System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,CommandBehavior行为)
在 System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute [TResultType](ObjectContext的 context,ObjectParameterCollection parameterValues)
在System.Data.Objects.ObjectQuery
1.GetResults(Nullable
1 forMergeOption)在 System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator()
在System.Data.Objects.ObjectQuery`1.GetEnumeratorInternal()
在 System.Data.Objects.ObjectQuery.System.Collections.IEnumerable.GetEnumerator()
在 System.ServiceModel.DomainServices.Server.DomainService.Enumerate [T](IEnumerable的 enumerable,Int32 estimatedResultCount)
在 System.ServiceModel.DomainServices.Server.DomainService.Query(QueryDescription queryDescription,IEnumerable`1& validationErrors,Int32& TOTALCOUNT)
在 System.ServiceModel.DomainServices.Hosting.QueryProcessor.Process [TEntity](的DomainService domainService,DomainOperationEntry queryOperation,Object [] 参数,ServiceQuery serviceQuery,IEnumerable`1& validationErrors,Int32& TOTALCOUNT)
在 System.ServiceModel.DomainServices.Hosting.QueryOperationBehavior`1.QueryOperationInvoker.InvokeCore(对象 实例,对象[]输入,对象[]&输出)
现在奇怪的是:
我有相同应用的开发部署,并且在连接到生产数据库时工作正常。
如果我连接到SSMS并执行存储过程,它将返回正确的数据。
所以我所做的只是重新编译存储过程。我基本上选择了存储过程,单击“修改”。它将生成ALTER PROCEDURE脚本,我只是点击执行而不更改任何内部。现在突然所有三个存储过程再次正常工作,即使我只重新编译其中一个。
为了更好地解释这一点,这是按顺序发生的事情:
Silverlight应用程序突然抱怨某些SP不包含某些列
在SSMS中运行SP,返回正常和预期的结果。
重新编译SP
在SSMS中运行SP,返回与#2完全相同的结果。
Silverlight应用程序再次运行
发生了什么事?