在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]").

posted @ 2013-03-05 16:29  赤狐(zcm123)  阅读(236)  评论(0编辑  收藏  举报