将存储过程保存在MVC中的字符串中

时间:2015-07-15 02:40:26

标签: asp.net-mvc asp.net-mvc-5

我想调用一个只返回一条记录并保存到View Model的存储过程。

例如 模型

public class VMNews {
    public List<News> TodayNews { get; set; }
    public NewsCategory NewsCat { get; set; }
}

查看模型

public ActionResult Index() {
     VMNews objnews = new VMNews();
    //This works fine as it contains List   
    objnews.TodayNews = db.Database.SqlQuery<News>("usp_News").ToList();
    //This gives a error stating Cannot implicitly convert type.....    
    objnews.NewsCat = db.Database.SqlQuery<NewsCategory>       ("usp_NewsCategory");
    return View(objnews);
}

行动方法

Sub Clear

1 个答案:

答案 0 :(得分:2)

您需要调用FirstOrDefault()方法才能只记录一条记录。

目前,您的存储过程会返回collection NewsCategory,并且您正在尝试将collection分配给single object,这将为您提供error

objnews.NewsCat = db.Database.SqlQuery<NewsCategory>("usp_NewsCategory").FirstOrDefault();