ExecuteStoreQuery输出参数不被返回

问题描述:

我有一些实体框架代码来运行存储过程,它返回一个参数。每次运行代码时,参数都会返回为空。有没有人有任何想法可能导致这种情况?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 

,这是好的,它显示的返回值,如果你运行查询但不返回到我的代码:(

This article说y在尝试访问输出参数的值之前,需要读取所有结果。你的代码不够完整,不能告诉你是否正在做这件事(如果你不是这样,试试ToList())。

+0

添加ToList()解决了我的问题,非常感谢。 – Naomi 2014-11-11 04:26:13