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);
                }
posted @ 2020-10-22 17:23  李花花小番茄  阅读(75)  评论(0编辑  收藏  举报