public void PersistAndFind() { { var ec1 = new EntityC(); TestBase.TestSerialization(ec1); var ey = new EntityY(); var ec2 = new EntityC { X = new[] { new EntityX(), new EntityX() }, Y = new[] { ey, ey }, Y2 = ey }; TestBase.TestSerialization(ec2); using (var em = Emf.CreateEntityManager()) { em.Persist(ec1); Assert.IsFalse(string.IsNullOrEmpty(ec1.Id)); em.Persist(ec2); Assert.IsFalse(string.IsNullOrEmpty(ec2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ec1 = em.Find <EntityC>(ec1.Id); Assert.AreEqual(ec1, _ec1); var _ec2 = em.Find <EntityC>(ec2.Id); Assert.AreEqual(ec2, _ec2); Assert.AreSame(_ec2.Y[0], _ec2.Y[1]); Assert.AreSame(_ec2.Y2, _ec2.Y[0]); } } { var ed1 = new EntityD(); TestBase.TestSerialization(ed1); var ey = new EntityY(); var ed2 = new EntityD { X = new HashSet <EntityX>(new[] { new EntityX(), new EntityX() }), Y = new HashSet <EntityY>(new[] { ey, new EntityY() }), Y2 = ey }; TestBase.TestSerialization(ed2); using (var em = Emf.CreateEntityManager()) { em.Persist(ed1); Assert.IsFalse(string.IsNullOrEmpty(ed1.Id)); em.Persist(ed2); Assert.IsFalse(string.IsNullOrEmpty(ed2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ed1 = em.Find <EntityD>(ed1.Id); Assert.AreEqual(ed1, _ed1); var _ed2 = em.Find <EntityD>(ed2.Id); Assert.AreEqual(ed2, _ed2); Assert.IsNotNull(_ed2.Y.FirstOrDefault(item => object.ReferenceEquals(item, _ed2.Y2))); } } { var ee1 = new EntityE(); TestBase.TestSerialization(ee1); var ey = new EntityY(); var ee2 = new EntityE { X = new List <EntityX>(new[] { new EntityX(), new EntityX() }), Y = new List <EntityY>(new[] { ey, ey }), Y2 = ey }; TestBase.TestSerialization(ee2); using (var em = Emf.CreateEntityManager()) { em.Persist(ee1); Assert.IsFalse(string.IsNullOrEmpty(ee1.Id)); em.Persist(ee2); Assert.IsFalse(string.IsNullOrEmpty(ee2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ee1 = em.Find <EntityE>(ee1.Id); Assert.AreEqual(ee1, _ee1); var _ee2 = em.Find <EntityE>(ee2.Id); Assert.AreEqual(ee2, _ee2); Assert.AreSame(_ee2.Y[0], _ee2.Y[1]); Assert.AreSame(_ee2.Y2, _ee2.Y[0]); } } { var ef1 = new EntityF(); TestBase.TestSerialization(ef1); var ey = new EntityY(); var ef2 = new EntityF { X = new ArrayList(new[] { new EntityX(), new EntityX() }), Y = new ArrayList(new[] { ey, ey }), Y2 = ey }; TestBase.TestSerialization(ef2); using (var em = Emf.CreateEntityManager()) { em.Persist(ef1); Assert.IsFalse(string.IsNullOrEmpty(ef1.Id)); em.Persist(ef2); Assert.IsFalse(string.IsNullOrEmpty(ef2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ef1 = em.Find <EntityF>(ef1.Id); Assert.AreEqual(ef1, _ef1); var _ef2 = em.Find <EntityF>(ef2.Id); Assert.AreEqual(ef2, _ef2); Assert.AreSame(_ef2.Y[0], _ef2.Y[1]); Assert.AreSame(_ef2.Y2, _ef2.Y[0]); } } }
public void PersistAndFind() { { var ec1 = new EntityC(); TestBase.TestSerialization(ec1); var ey = new EntityY(); var ec2 = new EntityC { X = new[] { new EntityX(), new EntityX() }, Y = new[] { ey, ey }, Y2 = ey }; TestBase.TestSerialization(ec2); using (var em = Emf.CreateEntityManager()) { em.Persist(ec1); Assert.IsFalse(string.IsNullOrEmpty(ec1.Id)); em.Persist(ec2); Assert.IsFalse(string.IsNullOrEmpty(ec2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ec1 = em.Find<EntityC>(ec1.Id); Assert.AreEqual(ec1, _ec1); var _ec2 = em.Find<EntityC>(ec2.Id); Assert.AreEqual(ec2, _ec2); Assert.AreSame(_ec2.Y[0], _ec2.Y[1]); Assert.AreSame(_ec2.Y2, _ec2.Y[0]); } } { var ed1 = new EntityD(); TestBase.TestSerialization(ed1); var ey = new EntityY(); var ed2 = new EntityD { X = new HashSet<EntityX>(new[] { new EntityX(), new EntityX() }), Y = new HashSet<EntityY>(new[] { ey, new EntityY() }), Y2 = ey }; TestBase.TestSerialization(ed2); using (var em = Emf.CreateEntityManager()) { em.Persist(ed1); Assert.IsFalse(string.IsNullOrEmpty(ed1.Id)); em.Persist(ed2); Assert.IsFalse(string.IsNullOrEmpty(ed2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ed1 = em.Find<EntityD>(ed1.Id); Assert.AreEqual(ed1, _ed1); var _ed2 = em.Find<EntityD>(ed2.Id); Assert.AreEqual(ed2, _ed2); Assert.IsNotNull(_ed2.Y.FirstOrDefault(item => object.ReferenceEquals(item, _ed2.Y2))); } } { var ee1 = new EntityE(); TestBase.TestSerialization(ee1); var ey = new EntityY(); var ee2 = new EntityE { X = new List<EntityX>(new[] { new EntityX(), new EntityX() }), Y = new List<EntityY>(new[] { ey, ey }), Y2 = ey }; TestBase.TestSerialization(ee2); using (var em = Emf.CreateEntityManager()) { em.Persist(ee1); Assert.IsFalse(string.IsNullOrEmpty(ee1.Id)); em.Persist(ee2); Assert.IsFalse(string.IsNullOrEmpty(ee2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ee1 = em.Find<EntityE>(ee1.Id); Assert.AreEqual(ee1, _ee1); var _ee2 = em.Find<EntityE>(ee2.Id); Assert.AreEqual(ee2, _ee2); Assert.AreSame(_ee2.Y[0], _ee2.Y[1]); Assert.AreSame(_ee2.Y2, _ee2.Y[0]); } } { var ef1 = new EntityF(); TestBase.TestSerialization(ef1); var ey = new EntityY(); var ef2 = new EntityF { X = new ArrayList(new[] { new EntityX(), new EntityX() }), Y = new ArrayList(new[] { ey, ey }), Y2 = ey }; TestBase.TestSerialization(ef2); using (var em = Emf.CreateEntityManager()) { em.Persist(ef1); Assert.IsFalse(string.IsNullOrEmpty(ef1.Id)); em.Persist(ef2); Assert.IsFalse(string.IsNullOrEmpty(ef2.Id)); } using (var em = Emf.CreateEntityManager()) { var _ef1 = em.Find<EntityF>(ef1.Id); Assert.AreEqual(ef1, _ef1); var _ef2 = em.Find<EntityF>(ef2.Id); Assert.AreEqual(ef2, _ef2); Assert.AreSame(_ef2.Y[0], _ef2.Y[1]); Assert.AreSame(_ef2.Y2, _ef2.Y[0]); } } }