public async Task <IActionResult> Create([Bind("DepartmentID,Name,Budget,StartDate,InstructorID,RowVersion")] DePartment dePartment) { if (ModelState.IsValid) { _context.Add(dePartment); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["InstructorID"] = new SelectList(_context.Instructors, "ID", "name", dePartment.InstructorID); return(View(dePartment)); }
public async Task <IActionResult> Delete(DePartment dePartment) { try { if (await _context.DePartments.AnyAsync(m => m.DepartmentID == dePartment.DepartmentID)) { _context.DePartments.Remove(dePartment); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Index))); } catch (DbUpdateConcurrencyException) { return(RedirectToAction(nameof(Delete), new { concurrencyError = true, id = dePartment.DepartmentID })); } }
public static void Initialize(SchoolContext context) { //自动创建数据库 context.Database.EnsureCreated(); if (context.Students.Any()) { return; } var students = new Student[] { new Student { user_id = "Carson", name = "Alexander", EnrollmentDate = DateTime.Parse("2005-09-01") }, new Student { user_id = "Meredith", name = "Alonso", EnrollmentDate = DateTime.Parse("2002-09-01") }, new Student { user_id = "Arturo", name = "Anand", EnrollmentDate = DateTime.Parse("2003-09-01") }, new Student { user_id = "Gytis", name = "Barzdukas", EnrollmentDate = DateTime.Parse("2002-09-01") }, new Student { user_id = "Yan", name = "Li", EnrollmentDate = DateTime.Parse("2002-09-01") }, new Student { user_id = "Peggy", name = "Justice", EnrollmentDate = DateTime.Parse("2001-09-01") }, new Student { user_id = "Laura", name = "Norman", EnrollmentDate = DateTime.Parse("2003-09-01") }, new Student { user_id = "Nino", name = "Olivetto", EnrollmentDate = DateTime.Parse("2005-09-01") } }; foreach (Student s in students) { context.Students.Add(s); } context.SaveChanges(); var instructors = new Instructor[] { new Instructor { user_id = "Kim", name = "Abercrombie", HireDate = DateTime.Parse("1995-03-11") }, new Instructor { user_id = "Fadi", name = "Fakhouri", HireDate = DateTime.Parse("2002-07-06") }, new Instructor { user_id = "Roger", name = "Harui", HireDate = DateTime.Parse("1998-07-01") }, new Instructor { user_id = "Candace", name = "Kapoor", HireDate = DateTime.Parse("2001-01-15") }, new Instructor { user_id = "Roger", name = "Zheng", HireDate = DateTime.Parse("2004-02-12") } }; foreach (Instructor i in instructors) { context.Instructors.Add(i); } context.SaveChanges(); var departments = new DePartment[] { new DePartment { Name = "English", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), InstructorID = instructors.Single(i => i.name == "Abercrombie").ID }, new DePartment { Name = "Mathematics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), InstructorID = instructors.Single(i => i.name == "Fakhouri").ID }, new DePartment { Name = "Engineering", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), InstructorID = instructors.Single(i => i.name == "Harui").ID }, new DePartment { Name = "Economics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), InstructorID = instructors.Single(i => i.name == "Kapoor").ID } }; foreach (DePartment d in departments) { context.DePartments.Add(d); } context.SaveChanges(); var courses = new Course[] { new Course { CourseID = 1050, Title = "Chemistry", Credits = 3, DepartmentID = departments.Single(s => s.Name == "Engineering").DepartmentID }, new Course { CourseID = 4022, Title = "Microeconomics", Credits = 3, DepartmentID = departments.Single(s => s.Name == "Economics").DepartmentID }, new Course { CourseID = 4041, Title = "Macroeconomics", Credits = 3, DepartmentID = departments.Single(s => s.Name == "Economics").DepartmentID }, new Course { CourseID = 1045, Title = "Calculus", Credits = 4, DepartmentID = departments.Single(s => s.Name == "Mathematics").DepartmentID }, new Course { CourseID = 3141, Title = "Trigonometry", Credits = 4, DepartmentID = departments.Single(s => s.Name == "Mathematics").DepartmentID }, new Course { CourseID = 2021, Title = "Composition", Credits = 3, DepartmentID = departments.Single(s => s.Name == "English").DepartmentID }, new Course { CourseID = 2042, Title = "Literature", Credits = 4, DepartmentID = departments.Single(s => s.Name == "English").DepartmentID }, }; foreach (Course c in courses) { context.Courses.Add(c); } context.SaveChanges(); var courseInstructors = new CourseAssignment[] { new CourseAssignment { CourseID = courses.Single(c => c.Title == "Chemistry").CourseID, InstructorID = instructors.Single(i => i.name == "Kapoor").ID }, new CourseAssignment { CourseID = courses.Single(c => c.Title == "Chemistry").CourseID, InstructorID = instructors.Single(i => i.name == "Harui").ID }, new CourseAssignment { CourseID = courses.Single(c => c.Title == "Microeconomics").CourseID, InstructorID = instructors.Single(i => i.name == "Zheng").ID }, new CourseAssignment { CourseID = courses.Single(c => c.Title == "Macroeconomics").CourseID, InstructorID = instructors.Single(i => i.name == "Zheng").ID }, new CourseAssignment { CourseID = courses.Single(c => c.Title == "Calculus").CourseID, InstructorID = instructors.Single(i => i.name == "Fakhouri").ID }, new CourseAssignment { CourseID = courses.Single(c => c.Title == "Trigonometry").CourseID, InstructorID = instructors.Single(i => i.name == "Harui").ID }, new CourseAssignment { CourseID = courses.Single(c => c.Title == "Composition").CourseID, InstructorID = instructors.Single(i => i.name == "Abercrombie").ID }, new CourseAssignment { CourseID = courses.Single(c => c.Title == "Literature").CourseID, InstructorID = instructors.Single(i => i.name == "Abercrombie").ID }, }; foreach (CourseAssignment ci in courseInstructors) { context.CourseAssignments.Add(ci); } context.SaveChanges(); var officeAssignments = new OfficeAssignment[] { new OfficeAssignment { InstructorID = instructors.Single(i => i.name == "Fakhouri").ID, Location = "Smith 17" }, new OfficeAssignment { InstructorID = instructors.Single(i => i.name == "Harui").ID, Location = "Gowan 27" }, new OfficeAssignment { InstructorID = instructors.Single(i => i.name == "Kapoor").ID, Location = "Thompson 304" }, }; foreach (OfficeAssignment o in officeAssignments) { context.OfficeAssignments.Add(o); } context.SaveChanges(); var enrollments = new Enrollment[] { new Enrollment { StudentID = students.Single(s => s.name == "Alexander").ID, CourseID = courses.Single(c => c.Title == "Chemistry").CourseID, Grade = Grade.A }, new Enrollment { StudentID = students.Single(s => s.name == "Alexander").ID, CourseID = courses.Single(c => c.Title == "Microeconomics").CourseID, Grade = Grade.C }, new Enrollment { StudentID = students.Single(s => s.name == "Alexander").ID, CourseID = courses.Single(c => c.Title == "Macroeconomics").CourseID, Grade = Grade.B }, new Enrollment { StudentID = students.Single(s => s.name == "Alonso").ID, CourseID = courses.Single(c => c.Title == "Calculus").CourseID, Grade = Grade.B }, new Enrollment { StudentID = students.Single(s => s.name == "Alonso").ID, CourseID = courses.Single(c => c.Title == "Trigonometry").CourseID, Grade = Grade.B }, new Enrollment { StudentID = students.Single(s => s.name == "Alonso").ID, CourseID = courses.Single(c => c.Title == "Composition").CourseID, Grade = Grade.B }, new Enrollment { StudentID = students.Single(s => s.name == "Anand").ID, CourseID = courses.Single(c => c.Title == "Chemistry").CourseID }, new Enrollment { StudentID = students.Single(s => s.name == "Anand").ID, CourseID = courses.Single(c => c.Title == "Microeconomics").CourseID, Grade = Grade.B }, new Enrollment { StudentID = students.Single(s => s.name == "Barzdukas").ID, CourseID = courses.Single(c => c.Title == "Chemistry").CourseID, Grade = Grade.B }, new Enrollment { StudentID = students.Single(s => s.name == "Li").ID, CourseID = courses.Single(c => c.Title == "Composition").CourseID, Grade = Grade.B }, new Enrollment { StudentID = students.Single(s => s.name == "Justice").ID, CourseID = courses.Single(c => c.Title == "Literature").CourseID, Grade = Grade.B } }; foreach (Enrollment e in enrollments) { var enrollmentDataBase = context.Enrollments.Where( s => s.Student.ID == e.StudentID && s.Course.CourseID == e.CourseID).SingleOrDefault(); if (enrollmentDataBase == null) { context.Enrollments.Add(e); } } context.SaveChanges(); }
public async Task <IActionResult> Edit(int?id, byte[] rowVersion) { if (id == null) { return(NotFound()); } var departmentToUpdate = await _context.DePartments .Include(i => i.Administrator) .SingleOrDefaultAsync(m => m.DepartmentID == id); if (departmentToUpdate == null) { DePartment DeletedePartment = new DePartment(); await TryUpdateModelAsync(DeletedePartment); ModelState.AddModelError(string.Empty, "不能保存,被其他用户删除。"); ViewData["InstructorID"] = new SelectList(_context.Instructors, "ID", "name", DeletedePartment.InstructorID); return(View(DeletedePartment)); } _context.Entry(departmentToUpdate).Property("RowVersion").OriginalValue = rowVersion; if (await TryUpdateModelAsync <DePartment>(departmentToUpdate, "", s => s.Name, s => s.Budget, s => s.StartDate, s => s.DepartmentID)) { try { await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch (DbUpdateConcurrencyException ex) { var exceptionEntry = ex.Entries.Single(); var clientValues = (DePartment)exceptionEntry.Entity; var databaseEntry = exceptionEntry.GetDatabaseValues(); if (databaseEntry == null) { ModelState.AddModelError(string.Empty, "不能保存,被其他用户删除。"); } else { var databaseValues = (DePartment)databaseEntry.ToObject(); if (databaseValues.Name != clientValues.Name) { ModelState.AddModelError("Name", $"当前值: {databaseValues.Name}"); } if (databaseValues.Budget != clientValues.Budget) { ModelState.AddModelError("Budget", $"当前值: {databaseValues.Budget:c}"); } if (databaseValues.StartDate != clientValues.StartDate) { ModelState.AddModelError("StartDate", $"当前值: {databaseValues.StartDate:d}"); } if (databaseValues.InstructorID != clientValues.InstructorID) { Instructor databaseInstructor = await _context.Instructors.SingleOrDefaultAsync(i => i.ID == databaseValues.InstructorID); ModelState.AddModelError("InstructorID", $"当前值: {databaseInstructor?.name}"); } ModelState.AddModelError(string.Empty, "你试图修改的数据,被其他人做了修改。如必须修改请再次点击保存"); departmentToUpdate.RowVersion = (byte[])databaseValues.RowVersion; ModelState.Remove("RowVersion"); } } } ViewData["InstructorID"] = new SelectList(_context.Instructors, "ID", "FullName", departmentToUpdate.InstructorID); return(View(departmentToUpdate)); }