use*_*155 5 c# sql asp.net entity-framework asp.net-mvc-5
我创建了一个控制器类,如下所示:
public class CelebrityController : Controller
{
private MyDatabase db = new MyDatabase();
public ActionResult Index()
{
var query = db.tableCelebrity.Include(t => t.tableMovie);
return View(query.ToList());
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想做同样的事情,但在Index方法中使用纯SQL查询.我试图替换代码如下:
public class CelebrityController : Controller
{
private MyDatabase db = new MyDatabase();
public ActionResult Index()
{
IEnumerable<tableCelebrity> results = db.ExecuteQuery<tableCelebrity>
(@"SELECT c1.celebid as CelebrityID, t1.movieName as MovieName
FROM tableCelebrity as c1, tableMovie as t1
WHERE c1.celebid = t1.celebid");
}
}
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误db.ExecuteQuery<tableCelebrity>:
错误'MyProject.Models.MyDatabase'不包含'ExecuteQuery'的定义,并且没有扩展方法'ExecuteQuery'接受类型为'MyProject.Models.MyDatabase'的第一个参数'
是否可以使用ASP.NET MVC?如果是,那么我必须在方法中执行哪些更改?
请帮我这样做.
I am created Details method as below
public ActionResult ShortDetails(int? id, string tagname)
{
tblCelebrity tblcelebrity = db.tblCelebrities.SqlQuery<tblCelebrity>("SELECT * FROM dbo.tblCelebrity WHERE Celebrity_ID =" + id);
if (tblcelebrity == null)
{
return HttpNotFound();
}
return View(tblcelebrity);
}
Run Code Online (Sandbox Code Playgroud)
和详细信息查看接受类型为
@model MyProject.Models.tblCelebrity
Run Code Online (Sandbox Code Playgroud)
我还在我的项目中创建了tblCelebrity类
但是`tblCelebrity tblcelebrity = db.tblCelebrities.SqlQuery("SELECT*FROM dbo.tblCelebrity WHERE Celebrity_ID ="+ id); 此行给出错误,因为非泛型方法'System.Data.Entity.DbSet.SqlQuery(string,params object [])'不能与类型参数一起使用
Rad*_*Zec 12
你想要类似的东西:
using (var context = new BloggingContext())
{
var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList();
}
Run Code Online (Sandbox Code Playgroud)
你可以在这里找到教程:http: //msdn.microsoft.com/en-us/data/jj592907.aspx
| 归档时间: |
|
| 查看次数: |
19013 次 |
| 最近记录: |