首先检查下面的控制器代码。然后还检查包含SQL Server Management Studio中的存储过程代码的底部图片。
现在问题是:我的PagedSearchedUserItems
过程需要两个int
参数,它将返回几列数据的输出(您可以从下面的屏幕截图中看到数据样本)。
在我的控制器中,我不知道如何传递两个参数并在变量Items
中获取该数据。你可以修改我的控制器代码来正确传递两个参数,并获取我的变量“Items”的所有值吗?
控制器代码:
using (var ctx = new db_demoEntities())
{
var Items = ctx.Database.SqlQuery<SearchedUserItems>("EXEC PagedSearchedUserItems @TakeFrom",2).ToList<SearchedUserItems>();
}
存储过程代码:
CREATE PROCEDURE PagedSearchedUserItems
@TakeFrom INT,
@TakePerPage INT
AS
BEGIN
SELECT *
FROM SearchedUserItems
ORDER BY Id
OFFSET @TakeFrom ROWS
FETCH NEXT @TakePerPage ROWS ONLY;
END
PagedSearchedUserItems 2,5
答案 0 :(得分:0)
我认为你正在寻找类似的东西。传递两个参数时,此代码应该可以正常工作。我假设&#34; SearchedUserItems&#34;对象正在加工您的数据模型。
using (var ctx = new db_demoEntities())
{
object[] xparams = {
new SqlParameter("@TakeFrom", 2),
new SqlParameter("@TakePerPage", 5)};
var Items = ctx.Database.SqlQuery<SearchedUserItems>("EXEC PagedSearchedUserItems @TakeFrom, @TakePerPage", xparams).ToList<SearchedUserItems>();
}