0

我试图将实体框架6引入完全依赖存储过程的遗留系统。通过EF6调用存储过程,其中存储过程调用另一个过程的结果

我有一个存储过程生成一个查询,然后将它传递给第二个查询来处理所有的分页需求。问题是,当我将存储过程添加到模型时,框架检测到返回类型为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] 

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

有谁知道我想要做什么是可能的?或者我应该考虑重构存储过程吗?

回答

0

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

+0

我不确定这是否会有所帮助,因为我在w3wp过程中遇到异常。我不明白这是如何通过存储过程返回第二个SP的结果来帮助生成实体模型的。无论如何,我们已经走了另一条路,谢谢回答。 – 2014-11-02 19:40:17

相关问题