public void Many2ManyDoAdd() { MajorWithOtherID m1 = new MajorWithOtherID { ID = "id1", MajorCode = "111", MajorName = "major1", MajorType = MajorTypeEnum.Optional }; MajorWithOtherID m2 = new MajorWithOtherID { ID = "id2", MajorCode = "222", MajorName = "major2", MajorType = MajorTypeEnum.Required }; Student s1 = new Student { LoginName = "s1", Password = "******", Name = "student1" }; Student s2 = new Student { LoginName = "s2", Password = "******", Name = "student2" }; _majorvm.Entity = m1; _majorvm.DoAdd(); _majorvm.Entity = m2; _majorvm.DoAdd(); s1.StudentMajorWithOtherID = new List <StudentMajorWithOtherID>(); s1.StudentMajorWithOtherID.Add(new StudentMajorWithOtherID { MajorId = m1.ID }); s2.StudentMajorWithOtherID = new List <StudentMajorWithOtherID>(); s2.StudentMajorWithOtherID.Add(new StudentMajorWithOtherID { MajorId = m2.ID }); _studentvm.Entity = s1; _studentvm.DoAdd(); _studentvm.Entity = s2; _studentvm.DoAdd(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { Assert.AreEqual(2, context.Set <MajorWithOtherID>().Count()); Assert.AreEqual(2, context.Set <Student>().Count()); Assert.AreEqual(2, context.Set <StudentMajorWithOtherID>().Count()); var rv = context.Set <StudentMajorWithOtherID>().ToList(); Assert.AreEqual(s1.ID, rv[0].StudentId); Assert.AreEqual(m1.ID, rv[0].MajorId); Assert.AreEqual(s2.ID, rv[1].StudentId); Assert.AreEqual(m2.ID, rv[1].MajorId); } }
public void Many2ManyDoEditClearRelation() { MajorWithOtherID m1 = new MajorWithOtherID { ID = "id1", MajorCode = "111", MajorName = "major1", MajorType = MajorTypeEnum.Optional }; MajorWithOtherID m2 = new MajorWithOtherID { ID = "id2", MajorCode = "222", MajorName = "major2", MajorType = MajorTypeEnum.Required }; MajorWithOtherID m3 = new MajorWithOtherID { ID = "id3", MajorCode = "333", MajorName = "major3", MajorType = MajorTypeEnum.Required }; Student s1 = new Student { LoginName = "s1", Password = "******", Name = "student1" }; _majorvm.Entity = m1; _majorvm.DoAdd(); _majorvm.Entity = m2; _majorvm.DoAdd(); _majorvm.Entity = m3; _majorvm.DoAdd(); s1.StudentMajorWithOtherID = new List <StudentMajorWithOtherID>(); s1.StudentMajorWithOtherID.Add(new StudentMajorWithOtherID { MajorId = m1.ID }); s1.StudentMajorWithOtherID.Add(new StudentMajorWithOtherID { MajorId = m2.ID }); s1.StudentMajorWithOtherID.Add(new StudentMajorWithOtherID { MajorId = m3.ID }); _studentvm.Entity = s1; _studentvm.DoAdd(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { s1.StudentMajor = null; _studentvm.DC = context; _studentvm.Entity = s1; _studentvm.DoEdit(); } using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { Assert.AreEqual(3, context.Set <StudentMajorWithOtherID>().Count()); } using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { s1.StudentMajorWithOtherID = new List <StudentMajorWithOtherID>(); _studentvm.DC = context; _studentvm.Entity = s1; _studentvm.FC = new Dictionary <string, object>(); _studentvm.FC.Add("Entity.StudentMajorWithOtherID", null); _studentvm.DoEdit(); } using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { Assert.AreEqual(0, context.Set <StudentMajorWithOtherID>().Count()); } }
public void Many2ManyDoEdit() { MajorWithOtherID m1 = new MajorWithOtherID { ID = "id1", MajorCode = "111", MajorName = "major1", MajorType = MajorTypeEnum.Optional }; MajorWithOtherID m2 = new MajorWithOtherID { ID = "id2", MajorCode = "222", MajorName = "major2", MajorType = MajorTypeEnum.Required }; MajorWithOtherID m3 = new MajorWithOtherID { ID = "id3", MajorCode = "333", MajorName = "major3", MajorType = MajorTypeEnum.Required }; Student s1 = new Student { LoginName = "s1", Password = "******", Name = "student1" }; _majorvm.Entity = m1; _majorvm.DoAdd(); _majorvm.Entity = m2; _majorvm.DoAdd(); _majorvm.Entity = m3; _majorvm.DoAdd(); s1.StudentMajorWithOtherID = new List <StudentMajorWithOtherID>(); s1.StudentMajorWithOtherID.Add(new StudentMajorWithOtherID { MajorId = m1.ID }); s1.StudentMajorWithOtherID.Add(new StudentMajorWithOtherID { MajorId = m2.ID }); _studentvm.Entity = s1; _studentvm.DoAdd(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { s1.StudentMajorWithOtherID.RemoveAt(0); s1.StudentMajorWithOtherID.Add(new StudentMajorWithOtherID { MajorId = m3.ID }); _studentvm.DC = context; _studentvm.Entity = s1; _studentvm.DoEdit(); } using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { Assert.AreEqual(3, context.Set <MajorWithOtherID>().Count()); Assert.AreEqual(1, context.Set <Student>().Count()); Assert.AreEqual(2, context.Set <StudentMajorWithOtherID>().Count()); var rv1 = context.Set <StudentMajorWithOtherID>().Where(x => x.MajorId == m2.ID).SingleOrDefault(); var rv2 = context.Set <StudentMajorWithOtherID>().Where(x => x.MajorId == m3.ID).SingleOrDefault(); Assert.AreEqual(s1.ID, rv1.StudentId); Assert.AreEqual(m2.ID, rv1.MajorId); Assert.AreEqual(s1.ID, rv2.StudentId); Assert.AreEqual(m3.ID, rv2.MajorId); } }