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

相關問題