从MVC中的存储过程中检索数据

时间:2014-03-06 08:27:07

标签: sql-server asp.net-mvc stored-procedures

我有两个模型类

public partial class Items {
    public Items() {
        this.Items_RATINGS = new HashSet<Items_RATINGS>();
    }

    public int ITEMID { get; set; }
    public string ITEMNAME { get; set; }
    public virtual ICollection<Items_RATINGS> Items_RATINGS { get; set; }
}

public partial class Items_RATINGS
{
    public int ItemsID { get; set; }
    public byte ItemsRATING { get; set; }
    public string COMMENTS { get; set; }
    public virtual Items Items { get; set; }
 }

我还创建了存储过程以审核平均评分

CREATE PROCEDURE DBO.GET_ITEM_AVERAGERATING
@ITEMID INT
AS
 BEGIN
   SELECT AVG(OVERALLRATING) AS OVERALLRATING FROM ITEMS_RATINGS WHERE ITEMID = @ITEMID GROUP BY ITEMID
END
GO

在模型类中,我添加了

public virtual ICollection<GET_ITEM_AVERAGERATING_Result> GET_ITEM_AVERAGERATING { get; set; }

在控制器调用中,我尝试添加

return View(db.Items.Include(c => c.GET_ITEM_AVERAGERATING).ToList());

然而,我没有得到这个价值。它抛出了一个错误。

1 个答案:

答案 0 :(得分:0)

您需要将存储过程添加到edmx模型

以下是如何操作

1-打开您的edmx文件

2-然后右键单击Edmx设计器上的任意位置,然后选择添加&gt;功能导入。

3-这将打开添加功能的向导。选择要添加的过程并选择返回类型。

4-然后,您可以从dbcontext中将存储过程作为CLR方法调用。