通过EF6调用存储过程,其中存储过程调用结果的另一个过程

时间:2014-09-04 02:21:56

标签: sql-server c#-4.0 stored-procedures visual-studio-2013 entity-framework-6

我试图将Entity Framework 6引入完全依赖存储过程的遗留系统。

我有一个构建查询的存储过程,然后将其传递给处理所有分页要求的第二个查询。问题是,当我将存储过程添加到模型时,框架检测到返回类型为2列(varchar(4000)& varchar(100))而不是查询时返回的实际数据集被执行。

当我尝试运行代码时,首先,实时调试器在w3wp.exe中崩溃了一些未处理的win32异常。

然后当我取消调试时,我看到错误消息

  

数据阅读器与指定的' TFS_DevModel.spi_QualSearch_Result'不兼容。该类型的成员' provider_code'在数据阅读器中没有相应的具有相同名称的列。

存储过程如下:

declare @SQL varchar(5000),  
@SearchCriteria varchar(1000)

-- build the sorting expression

-- various checks to append criteria based on input parameters

SELECT @SQL = 'select column1, column2, etc from tables ' + 
  @SearchCriteria

execute PagingProc @SQL, @sort_expression, [paging parameters]

我试图定义一个复杂的类型以适应分页过程实际返回的数据,但是我得到了同样的错误。

有谁知道我尝试做的事情是否可行?或者我应该考虑重构存储过程?

1 个答案:

答案 0 :(得分:0)

尝试将w3wp.exe附加到IIS进程(工具>附加到进程>向下滚动到w3wp.exe,选择正确的IIS应用程序池并单击附加)。这似乎对我们有用。