說我有一個存儲過程GetAddressInfo(addressId int, errorCode int output)
。存儲過程返回AddressLine1和State,如果addressId
與數據庫中的某一行匹配。如果未找到行,則錯誤代碼設置爲非零值,並且不會觸發select語句。因此,它應該是這樣的:用EF 4.0調用存儲過程並使用輸出參數
if (valid address id) begin
Set errorCode = 1
return
end
select AddressLine1, State from ....
當我使用EF 4.0調用這種存儲過程,我得到一個實體框架異常,當address id
無效。例外情況提到AddressLine1
列不是數據閱讀器的一部分。
我期待沒有結果(沒有記錄)並輸出錯誤代碼參數設置爲1.相反,我收到異常。我只是想停止處理剩下的存儲過程並立即返回。看起來像EF 4.0不太支持這個功能。
對此的任何想法?
在此先感謝!
該地址ID驗證屬於您的應用程序... –
理想情況下,是的,地址ID將在應用程序層進行驗證,但我正在處理的項目有大量類似邏輯的存儲過程。我試圖找到將它們移動到實體框架的簡單方法。 – Eric