c# - 如何在 Entity Framework 中运行存储过程

标签 c# jquery asp.net-mvc entity-framework stored-procedures

我在数据库中有一个查询,它通过 Ajax 使用 Json 带来另一个查询作为响应。我已经创建了接受该查询并带来多列的存储过程。

我不知道如何在 Entity Framework 中运行存储过程。

需要帮助。

方法:-

public ActionResult DropDownn(string query)
    {
        using (DynamicDBEntities db = new DynamicDBEntities())
        {
            //var dbQuery = db.Database.SqlQuery<Cust_mas>(query).ToList();
            //return Json(courseList, JsonRequestBehavior.AllowGet);
        }
    }

SP:-
改变程序 [dbo].[SP_DynamicCtrl]

@query nvarchar(1000) 
As
begin
execute sp_executesql @query;
end

最佳答案

按照我的理解,你想执行一个在多个表上运行的存储过程,然后将Json数据返回给View。您实际上可以执行以下操作:

方法 1:(使用 ExecuteSqlCommand)

SqlParameter param1 = new SqlParameter("@query", query);        
var result = db.Database.ExecuteSqlCommand("SP_DynamicCtrl @query", 
                              param1);

方法 2:(在 SqlQuery 上使用对象类型)

SqlParameter param1 = new SqlParameter("@query", query);
Var result = db.Database.SqlQuery<Object>("exec SP_DynamicCtrl @query", param1);

方法 3:(更简洁的方法)

1.) 根据存储过程的返回参数创建一个模型,我们称它为 YourType 类。 2.) 使用下面的代码调用存储过程:

SqlParameter param1 = new SqlParameter("@query", query);
Var result = db.Database.SqlQuery<YourType>("exec SP_DynamicCtrl @query", param1);

在你得到上面查询的结果后,你可以把它转换成JSON然后返回给 Controller :

return Json(result, JsonRequestBehavior.AllowGet); //Typecast the result as per your need

请根据需要修改代码。

关于c# - 如何在 Entity Framework 中运行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44238774/

相关文章:

jquery - 如何使用 jQuery 找到 parent 列表

asp.net-mvc - MVC3 Bootstrap 带有网格的表格数据

javascript - 无法使用canvg将svg转换为png

c# - Asp.Net MVC 中强类型 View 数据到底是什么

asp.net-mvc - 使用.net core 5创建子域 "sub.example.com"

c# - Singleton 中具有 PerWebRequest 生活方式的对象

c# - 在C#中,类或函数前方括号中写的是什么?

c# - ObjectContext 实例已被释放,不能再用于需要连接的操作。在引用表中

c# - 线程过早停止

javascript - 谷歌地图信息窗口无法正确显示,但当我打开 firbug 时,它运行良好