62,025
社区成员
发帖
与我相关
我的任务
分享
private static void TestTeacher()
{
var courses = new List<Course>() { new Course() { Name = "C1" } };
var teacher = new Teacher()
{
Name = "T1",
Students = new List<Student>()
{
new Student() { Name = "S1", Courses = courses }
},
Courses = courses
};
using(var context = new BreakAwayContext())
{
context.Teachers.Add(teacher);
context.SaveChanges();
}
using (var context = new BreakAwayContext())
{
var updatedTeacher = context.Teachers.Include(x=>x.Students).Include(x=>x.Courses).First(x => x.Name == "T1");
updatedTeacher.Name = "T2";
context.SaveChanges();
}
using (var context = new BreakAwayContext())
{
var deletedTeacher = context.Teachers.Include(x => x.Students).Include(x => x.Courses).First(x => x.Name == "T2");
foreach (var s in context.Courses.Where(x => x.Teacher.Id == deletedTeacher.Id))
{
context.Courses.Remove(s);
}
foreach (var c in context.Students.Where(x => x.Teacher.Id == deletedTeacher.Id))
{
context.Students.Remove(c);
}
context.Teachers.Remove(deletedTeacher);
context.SaveChanges();
}
}
public class Teacher
{
public int Id { get; set; }
public string Name { get; set; }
public List<Course> Courses { get; set; }
public List<Student> Students { get; set; }
}
public class Course
{
public int Id { get; set; }
public string Name { get; set; }
public Teacher Teacher { get; set; }
public List<Student> Students { get; set; }
}
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public Teacher Teacher { get; set; }
public List<Course> Courses { get; set; }
}
public class Course
{
public int Id { get; set; }
public string Name { get; set; }
public List<Student> Students { get; set; }
}
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public List<Course> Courses { get; set; }
}
using (var context = new BreakAwayContext())
{
var student = new Student()
{
Name = "Ray",
Courses = new List<Course>() {
new Course() { Name = "Math" },
new Course() { Name = "English" }
}
};
context.Students.Add(student);
context.SaveChanges();
Assert.AreEqual(1, context.Students.Where(x => x.Name == "Ray").Count());
}
//Update
using (var context = new BreakAwayContext())
{
var student = (from d in context.Students.Include(x => x.Courses)
where d.Name == "Ray"
select d).Single();
student.Courses.Add(new Course() { Name = "Computer Science"} );
context.SaveChanges();
//Assert.AreEqual(0, context.Husbands.Where(x => x.Name == "A").Count());
Assert.AreEqual(3, context.Courses.Count());
}
//Delete
using (var context = new BreakAwayContext())
{
var student = (from s in context.Students
where s.Name == "Ray"
select s).Single();
context.Students.Remove(student);
context.SaveChanges();
Assert.AreEqual(0, context.Students.Where(x => x.Name == "Ray").Count());
}