自定义sql语句在代码第一实体框架项目中的位置

时间:2018-04-24 22:53:12

标签: entity-framework

自定义sql语句在代码第一实体框架项目中的位置是什么?

using (var context = new BloggingContext()) 
{ 
    var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList(); 
}

将它放在控制器中并不合适。那么也许在IdentityModel.cs类中?

1 个答案:

答案 0 :(得分:0)

实体框架的一个强烈的好处是你很少需要再使用SQL字符串。字符串的缺点是它们无法被编译器检查,因此容易出错,尤其是在更改数据库之后。

如果您根据Entity Framework Code First conventions设置了您的课程,那么您的陈述将是:

using (var dbContext = new BloggingContext)
{
    // get all Blogs (note: very unusual!)
    var blogs = dbContext.Blogs.ToList();
}

有时您需要显式使用SQL语句,例如在调用存储过程时。你可以使用对象DbContext.Database:

using (var dbContext = new BloggingContext)
{
    string sqlCommand = ...
    Database database = dbContext.Database;
    database.ExecuteSqlCommand(sqlCommand, <parameters>);
}

Database.ExecuteSqlCommand使用传统的查询数据库的方法。