在EF中使用SQL语句

在实体框架4.1和更高版本中你可以直接执行任意数据的命令。使用下面的方法使您能够执行对数据源原始的SQL命令

返回特定类型的实体,DbSet上的sqlquery使您能够执行原始SQL查询返回特定的实体实例,默认情况,被返回的实体被tracked by The COntext ,可以通过在 SqlQuery上调用AsNoTracking来改变

using (var context = new SchoolEntities()) { var departments = context.Departments.SqlQuery( "select * from Department").ToList(); }


返回任意类型的数据,DataBase上的SQlquery使你能够执行sql返回任意类型的数据,被返回的数据没有被tracked by The COntext,

?
using (var context = new SchoolEntities())
     var names = context.Database.SqlQuery< string >( "select Name from Department" ).ToList(); 
}

使用DataBase的ExecuteSqlCommand去更新数据

?
using (var context = new SchoolEntities())
{
     context.Database.ExecuteSqlCommand( "update Department set Name = 'Mathematics' where Name = 'Math'" );
}

 使用ExecuteSqlCommand 或者SqlQuery直接指定存储过程

context.Database.ExecuteSqlCommand ("EXECUTE [dbo].[DoSomething]").

你可能感兴趣的:(sql语句)