我试图将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]
我试图定义一个复杂的类型以适应分页过程实际返回的数据,但是我得到了同样的错误。
有谁知道我尝试做的事情是否可行?或者我应该考虑重构存储过程?
答案 0 :(得分:0)
尝试将w3wp.exe附加到IIS进程(工具>附加到进程>向下滚动到w3wp.exe,选择正确的IIS应用程序池并单击附加)。这似乎对我们有用。