如何在实体框架中执行原始sql查询?
发布时间:2020-05-23 23:06:57 所属栏目:MsSql 来源:互联网
导读:我正在使用带有实体框架5的asp.net mvc 3.我有我的.edmx文件能够使用 linq或SP与我的数据库进行交互,但我想运行一些原始的sql语句.我正在尝试这样的事情: Using(var ctx=new HREntities()){ ctx.Database.ExecuteSqlCommand(insert into Employees values {0
|
我正在使用带有实体框架5的asp.net mvc 3.我有我的.edmx文件&能够使用 linq或SP与我的数据库进行交互,但我想运行一些原始的sql语句.我正在尝试这样的事情: Using(var ctx=new HREntities())
{
ctx.Database.ExecuteSqlCommand("insert into Employees values {0},{1}",model.EMPLOYEEID,model.EMPLOYEENAME);
ctx.SaveChanges();
}
是否有可能以这种方式执行sql查询?谢谢. 解决方法您可以执行以下类型的查询:>返回特定类型实体的实体类型的SQL查询. using (var ctx = new SchoolDBEntities())
{
var studentList = ctx.Students.SqlQuery("Select * from Student").ToList<Student>();
}
>返回基本数据类型的非实体类型的SQL查询. using (var ctx = new SchoolDBEntities())
{
var studentName = ctx.Students.SqlQuery("Select studentid,studentname
from Student where studentname='New Student1'").ToList();
}
//Error
using (var ctx = new SchoolDBEntities())
{
//this will throw an exception
var studentName = ctx.Students.SqlQuery("Select studentid as id,studentname as name
from Student where studentname='New Student1'").ToList();
}
//SQL query for non-entity types:
using (var ctx = new SchoolDBEntities())
{
//Get student name of string type
string studentName = ctx.Database.SqlQuery<string>("Select studentname
from Student where studentid=1").FirstOrDefault<string>();
}
>对数据库的原始SQL命令. using (var ctx = new SchoolDBEntities())
{
//Update command
int noOfRowUpdated = ctx.Database.ExecuteSqlCommand("Update student
set studentname ='changed student by command' where studentid=1");
//Insert command
int noOfRowInserted = ctx.Database.ExecuteSqlCommand("insert into student(studentname)
values('New Student')");
//Delete command
int noOfRowDeleted = ctx.Database.ExecuteSqlCommand("delete from student
where studentid=1");
}
你也可以参考this (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
