2012-08-02 72 views
1

我有一些實體框架代碼來運行存儲過程,它返回一個參數。每次運行代碼時,參數都會返回爲空。有沒有人有任何想法可能導致這種情況?ExecuteStoreQuery輸出參數不被返回

感謝

代碼:

SqlParameter Business = new SqlParameter("Business", Search.Term); 
       SqlParameter Location = new SqlParameter("Location", Search.Location); 
       SqlParameter PageNumber = new SqlParameter("PageNumber", Search.CurrentPage); 
       SqlParameter RecordsPerPage = new SqlParameter("RecordsPerPage", Search.RecordsPerPage);     


       var TotalRecords = new SqlParameter 
       { 
        ParameterName = "TotalRecords", 
        Value = 0, 
        Direction = ParameterDirection.Output       
       }; 



       var List = db.ExecuteStoreQuery<ENT_SearchBusinessResult>("exec usp_BusinessUser_Search @Business,@Location,@PageNumber,@RecordsPerPage,@TotalRecords out", Business, Location, PageNumber, RecordsPerPage, TotalRecords); 

我用SQL事件探查,發現它是做了以下內容:

declare @p7 int 
set @p7=53 
exec sp_executesql N'exec usp_BusinessUser_Search @Business, 
@Location,@PageNumber,@RecordsPerPage, 
@TotalRecords out', 
N'@Business nvarchar(14),@Location nvarchar(14), 
@PageNumber int, 
@RecordsPerPage int,@TotalRecords int output', 
@Business=N'Food 
and Drink',@Location=N'United Kingdom',@PageNumber=1,@RecordsPerPage=10, 
@[email protected] output 
select @p7 

,這是好的,它顯示的返回值,如果你運行查詢但不返回到我的代碼:(

回答

1

This article說y在嘗試訪問輸出參數的值之前,需要讀取所有結果。你的代碼不夠完整,不能告訴你是否正在做這件事(如果你不是這樣,試試ToList())。

+0

添加ToList()解決了我的問題,非常感謝。 – Naomi 2014-11-11 04:26:13