Entity framework 自定义sql语句在代码优先实体框架项目中位于何处
自定义sql语句在代码优先实体框架项目中位于何处Entity framework 自定义sql语句在代码优先实体框架项目中位于何处,entity-framework,Entity Framework,自定义sql语句在代码优先实体框架项目中位于何处 using (var context = new BloggingContext()) { var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList(); } 把它放在控制器里感觉不对劲。因此,在IdentityModel.cs类中?实体框架的一个显著优点是,您不再需要使用SQL字符串。字符串的缺点是编译器无法检查它们,因此容易出错,尤其是在更改数据库
using (var context = new BloggingContext())
{
var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList();
}
把它放在控制器里感觉不对劲。因此,在IdentityModel.cs类中?实体框架的一个显著优点是,您不再需要使用SQL字符串。字符串的缺点是编译器无法检查它们,因此容易出错,尤其是在更改数据库之后 如果您是根据您的声明设计类的,您的声明如下:
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>);
}
使用(var dbContext=newbloggingcontext)
{
字符串sqlCommand=。。。
Database=dbContext.Database;
ExecuteSqlCommand(sqlCommand,);
}
数据库。ExecuteSqlCommand
使用传统的数据库查询方法。恐怕是基于意见的问题。为什么控制器不是一个合适的位置?为CRUD操作访问控制器中的上下文是正常的。自定义SQL没有做任何不同的事情。