EntityFramework 执行T-SQL和存储过程
执行sql语句
EFDB.Database.ExecuteSqlCommand(sql语句+(参数-如果有的话));
查询并获取返回值:
using (StudentManageDBEntities3 studentEntities = new StudentManageDBEntities3())
{
var student = new StudentList()
{
Name = "liFlower",
Gender = "男",
Birthday = DateTime.Now,
IDCard = 220153455616355143,
Age = 15,
PhoneNumber = "1235656177",
StudentAddress = "长春",
//同时操作外键
Classid = (from c in studentEntities.ClassList where c.ClassName == "英语班" select c.Classid).FirstOrDefault()
};
string sql2 = "select count(*) from StudentList";
string sql1 = "select * from StudentList where StudentList.Gender = '男'";
int count = studentEntities.Database.SqlQuery<int>(sql2).ToList()[0];
var stuList = studentEntities.Database.SqlQuery<StudentList>(sql1);//如果有参数则(sql1+参数)
//显示结果
Console.WriteLine(count);
foreach (var item in stuList)
{
Console.WriteLine(item.ID + " " + item.Name);
}
}
执行存储过程:
SqlParameter[] sqlParameters = new SqlParameter[]
{
new SqlParameter("@num","2")
};
int count = studentEntities.Database.ExecuteSqlCommand("exec ~~~~~~ ");//执行返回int类型的方法
var stuList = studentEntities.Database.SqlQuery<StudentList>("exec usp_Test @num", sqlParameters);//返回序列
foreach (var item in stuList)
{
Console.WriteLine(item.ID + " " +item.Name);
}