从控制器访问存储过程值

时间:2018-04-03 13:27:26

标签: c# asp.net-mvc entity-framework

我想从我的MVC控制器运行存储过程并从SQL数据库服务器获取计数值。请检查以下控制器代码。在那里,我打电话给我的程序 - " CountSearchedUserItems"但问题是我在调试中没有得到任何输出。

我在底部附有调试图片,请检查。

如何修复我的控制器以运行该过程并获得简单的int值?

控制器:

using (var ctx = new db_demoEntities()){
    var foo = ctx.Database.SqlQuery<db_demoEntities>("CountSearchedUserItems");
}

存储过程代码:

--CREATE PROCEDURE CountSearchedUserItems
--AS
--Begin
--select Count(*) from SearchedUserItems
--End

CountSearchedUserItems //now i can call this procedure successfully from mssql managment

调试图片:
debug pic

ms sql管理测试:
ms sql management test

1 个答案:

答案 0 :(得分:1)

该方法需要泛型参数中的所需返回类型。

如果您期望int计数,则使用int作为通用参数参数

int foo = ctx.Database.SqlQuery<int>("EXEC CountSearchedUserItems").First();

返回的结果是一个集合,您需要枚举它以获取值。