Esempio n. 1
0
        /// <summary>
        /// 获取一个班级中的Student
        /// </summary>
        /// <param name="gradeId"></param>
        /// <returns></returns>
        public IHttpActionResult GetAllStudentsInSameGrade(int gradeId)
        {
            IList <StudentViewModel> students = null;

            using (var db = new EFDemoDBEntities())
            {
                students = db.Students.Include("Grades").Where(s => s.Grade.GradeID == gradeId).
                           Select(s => new StudentViewModel()
                {
                    ID    = s.ID,
                    Name  = s.Name,
                    Sex   = s.Sex,
                    Age   = s.Age,
                    Grade = s.Grade == null ? null : new GradeViewModel()
                    {
                        GradeID   = s.Grade.GradeID,
                        GradeName = s.Grade.GradeName
                    }
                }).ToList <StudentViewModel>();
            }
            if (students.Count == 0)
            {
                return(NotFound());
            }
            return(Ok(students));
        }
Esempio n. 2
0
        /// <summary>
        /// 获取所有的Student记录
        /// </summary>
        /// <returns></returns>
        //public IHttpActionResult GetAllStudents()
        //{
        //    //不应该直接返回EF对象,而应该返回DTO或者ViewModel对象
        //    IList<StudentViewModel> students = null;
        //    using (var db = new EFDemoDBEntities())
        //    {
        //        students = db.Students.Include("Grades").Select(s => new StudentViewModel()
        //        {
        //            ID = s.ID,
        //            Name = s.Name,
        //            Sex = s.Sex,
        //            Age = s.Age

        //        }).ToList<StudentViewModel>();
        //    }
        //    //count数量为0,说明没有数据
        //    if (students.Count == 0)
        //    {
        //        return NotFound();
        //    }
        //    return Ok(students);
        //}
        #endregion

        #region 获取所有的Student记录【包含Grade信息】
        /// <summary>
        /// 获取所有的Student记录【包含Grade信息】
        /// </summary>
        /// <returns></returns>
        //public IHttpActionResult GetAllStudentsWithGrade()
        //{
        //    IList<StudentViewModel> students = null;
        //    using (var db = new EFDemoDBEntities())
        //    {
        //        students = db.Students.Include("Grades").Select(s => new StudentViewModel()
        //        {
        //            ID = s.ID,
        //            Name = s.Name,
        //            Sex = s.Sex,
        //            Age = s.Age,
        //            Grade = s.Grade == null ? null : new GradeViewModel()
        //            {
        //                GradeID = s.Grade.GradeID,
        //                GradeName = s.Grade.GradeName
        //            }
        //        }).ToList<StudentViewModel>();
        //    }
        //    if (students.Count == 0)
        //    {
        //        return NotFound();
        //    }
        //    return Ok(students);
        //}
        #endregion

        #region 获取所有的Student记录,根据参数是否包含Grade信息
        /// <summary>
        /// 获取所有的Student记录,根据参数是否包含Grade信息
        /// </summary>
        /// <returns></returns>
        public IHttpActionResult GetAllStudents(bool includeGrade = false)
        {
            //不应该直接返回EF对象,而应该返回DTO或者ViewModel对象
            IList <StudentViewModel> students = null;

            using (var db = new EFDemoDBEntities())
            {
                students = db.Students.Include("Grades").Select(s => new StudentViewModel()
                {
                    ID    = s.ID,
                    Name  = s.Name,
                    Sex   = s.Sex,
                    Age   = s.Age,
                    Grade = s.Grade == null || includeGrade == false ? null : new GradeViewModel()
                    {
                        GradeID   = s.Grade.GradeID,
                        GradeName = s.Grade.GradeName
                    }
                }).ToList <StudentViewModel>();
            }
            //count数量为0,说明没有数据
            if (students.Count == 0)
            {
                return(NotFound());
            }
            return(Ok(students));
        }
Esempio n. 3
0
 public IHttpActionResult DeleteStudent(int id)
 {
     if (id <= 0)
     {
         return(BadRequest("Not a valid student id"));
     }
     using (var db = new EFDemoDBEntities())
     {
         var student = db.Students.Where(s => s.ID == id).FirstOrDefault();
         if (student == null)
         {
             return(NotFound());
         }
         db.Entry(student).State = System.Data.Entity.EntityState.Deleted;
         db.SaveChanges();
     }
     return(Ok());
 }
Esempio n. 4
0
        /// <summary>
        /// POST,请求,新增一个Student
        /// </summary>
        /// <param name="student"></param>
        /// <returns></returns>
        public IHttpActionResult PostNewStudent(StudentViewModel student)
        {
            /*
             * 在Filder中的request body中这样写:
             * {
             *  "name":"TestStudent",
             *  "sex":"女",
             *  "age":"18",
             *  "Grade":{"gradeid":2,"gradename":"软件1107班"}
             *
             * }
             */


            if (student != null)
            {
                if (!ModelState.IsValid)
                {
                    //400
                    return(BadRequest("Invalid data"));
                }
                using (var db = new EFDemoDBEntities())
                {
                    //因为不要把EF的实体对象和客户端直接操作,就搞一个ViewModel实体
                    db.Students.Add(new Student()
                    {
                        ID    = student.ID,
                        Name  = student.Name,
                        Sex   = student.Sex,
                        Age   = student.Age,
                        Grade = null
                                //db.Grades.Where(s => s.GradeID == student.Grade.GradeID).FirstOrDefault()
                                //{ GradeID = student.Grade.GradeID, GradeName = student.Grade.GradeName }//这样写就会新增一个班级
                    });
                    db.SaveChanges();
                }

                return(Ok());
            }


            return(NotFound());
        }
Esempio n. 5
0
        /// <summary>
        /// 根据id查询学生
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IHttpActionResult GetStudentById(int id)
        {
            StudentViewModel student = null;

            using (var db = new EFDemoDBEntities())
            {
                student = db.Students.Include("Grades").Where(s => s.ID == id).Select(s => new StudentViewModel()
                {
                    ID   = s.ID,
                    Name = s.Name,
                    Sex  = s.Sex,
                    Age  = s.Age
                }).FirstOrDefault <StudentViewModel>();
            }
            if (student == null)
            {
                return(NotFound());
            }
            return(Ok(student));
        }
Esempio n. 6
0
        /// <summary>
        /// 根据name查询学生信息
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public IHttpActionResult GetAllStudents(string name)
        {
            IList <StudentViewModel> students = null;

            using (var db = new EFDemoDBEntities())
            {
                students = db.Students.Include("Grades").Where(s => s.Name.ToLower() == name.ToLower()).
                           Select(s => new StudentViewModel()
                {
                    ID   = s.ID,
                    Name = s.Name,
                    Sex  = s.Sex,
                    Age  = s.Age
                }).ToList <StudentViewModel>();
            }
            if (students.Count == 0)
            {
                return(NotFound());
            }
            return(Ok(students));
        }
Esempio n. 7
0
 /// <summary>
 /// 修改数据
 /// </summary>
 /// <param name="student"></param>
 /// <returns></returns>
 public IHttpActionResult PutStudent(StudentViewModel student)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest("Not a valid model"));
     }
     using (var db = new EFDemoDBEntities())
     {
         var existingStudent = db.Students.Where(s => s.ID == student.ID).FirstOrDefault <Student>();
         if (existingStudent != null)
         {
             existingStudent.Name = student.Name;
             existingStudent.Sex  = student.Sex;
             existingStudent.Age  = student.Age;
             db.SaveChanges();
         }
         else
         {
             return(NotFound());
         }
     }
     return(Ok());
 }