【发布时间】:2014-09-04 02:21:55
【问题描述】:
我正在尝试将 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]
我试图定义一个复杂类型来适应分页过程实际返回的数据,但我得到了同样的错误。
有谁知道我正在尝试做的事情是否可行?还是我应该考虑重构存储过程?
【问题讨论】:
标签: sql-server c#-4.0 stored-procedures visual-studio-2013 entity-framework-6