自定义sql语句在代码第一实体框架项目中的位置是什么?
using (var context = new BloggingContext())
{
var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList();
}
将它放在控制器中并不合适。那么也许在IdentityModel.cs类中?
答案 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
使用传统的查询数据库的方法。