Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 自定义sql语句在代码优先实体框架项目中位于何处_Entity Framework - Fatal编程技术网

Entity framework 自定义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字符串。字符串的缺点是编译器无法检查它们,因此容易出错,尤其是在更改数据库

自定义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没有做任何不同的事情。