如何在mvc4中使用旧式sql

时间:2013-06-03 13:35:14

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

我正在学习MVC4,我了解了实体框架。但我想知道你如何在MVC 4中使用旧式sql语句。

让我说我有EF代码的这个动作

public ActionResult Index(){
    var model = from r in restaruants
                select r;
    return View(model);
}

是否可以在索引函数中使用旧式sql而不是EF?

我对旧式sql的意思是“select * from restaurant”

public ActionResult Index(){
   /* Can I have something like this? */
   var model = Return_Model_Somehow("select * from restaurants");

   return View(model);
}

2 个答案:

答案 0 :(得分:12)

您可以使用SqlQuery方法执行原始SQL:

var model = context.Database.SqlQuery<Restauraunt>("SELECT * FROM Restaruants")
                   .ToList();
return View(model);

以下是MSDN文章:Raw SQL Queries

答案 1 :(得分:4)

MVC(所有版本)不会假设/强制任何数据访问方法,如果你的意思是'Linq'那么:

string q = "SELECT *FROM Table1";
IEnumerable<Entities.Table1> res = context.ExecuteQuery<Entities.Table1>(q);

现在您将结果作为可枚举的集合,根据需要使用它。

希望有所帮助。