在ASP中执行存储过程.. NET MVC和LINQ
本文关键字:MVC LINQ NET 存储过程 ASP 执行 | 更新日期: 2023-09-27 18:03:39
我是一个新手。NET,所以这可能是一个非常基本的问题。总之,我想在服务器上执行一个存储过程。正如标题中提到的,我正在使用ASP。净MVC。目前可以查询整个表:
控制器:
public JsonResult GetLaptopsJson()
{
Laptop[] laptops = context.GetTable<Laptop>().ToArray();
return Json(laptops, JsonRequestBehavior.AllowGet);
}
Javascript:
$.ajax({
url: '/Home/GetLaptopsJson',
contentType: 'application/html; charset=utf-8',
type: 'GET',
dataType: 'json'
})
.success(function (result) {
$('#search_result').empty();
for (var i = 0; i <= (result.length - 1); i++)
{
add_result(result[i].Id, result[i].Price);
}
})
.error(function (xhr, status) {
alert(status);
});
模型:
[Table(Name = "Laptop")]
public class Laptop
{
[Column(IsPrimaryKey = true)]
public int Id { get; set; }
[Column]
public string Name { get; set; }
[Column]
public decimal Price { get; set; }
}
如果我将控制器更改为以下,它将不返回任何内容:
var laptops = context.ExecuteQuery<Laptop>(@"exec [dbo].[sp_Select_Laptop]");
同样,如果我将类型从laptop更改为object,它将不返回任何内容。这让我想到一个事实,我误解了一些基本的东西。
提前感谢各位!
EDIT1:
存储过程代码:
CREATE PROC [dbo].[sp_Select_Laptop]
AS
SET NOCOUNT ON
SELECT
[ID], [Name], [Price]
FROM
[dba].[dbo].[Laptop]
GO
感谢Maarten和这个答案。
以下修改是必要的:
控制器:
DbContext dbcontext;
public HomeController()
{
this.dbcontext = new DbContext(Connections.connection);
}
var laptops = dbcontext.Database.SqlQuery<Laptop>(@"exec [dbo].[sp_Select_Laptop]");