2

パラメータを返すストアド プロシージャを実行するエンティティ フレームワーク コードがあります。コードを実行するたびに、パラメーターは null として返されます。これを引き起こしている可能性のあるアイデアはありますか?

ありがとう

コード:

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,
@TotalRecords=@p7 output
select @p7

これは問題ありません。このクエリを実行すると戻り値が表示されますが、私のコードには戻りません:(

4

2 に答える 2

2

この記事では、out パラメーターの値にアクセスする前に、すべての結果を読み取る必要があると述べています。あなたのコードは、これを行っているかどうかを判断するのに十分ではありません (そうでない場合は ToList() を試してください)。

于 2012-08-02T16:30:59.483 に答える