Ejemplo n.º 1
0
        private bool LoadEntityWithId(ITransaction transaction, CrossReferenceTestRootEntity loadEntity, int id)
        {
            bool loaded = false;

            IDbCommand cmd = transaction.CreateCommand();

            cmd.CommandText = "select * from cross_reference_test_root where id_col = ?";

            IDbDataParameter parameter = cmd.CreateParameter();

            cmd.Parameters.Add(parameter);
            parameter.DbType    = DbType.Int32;
            parameter.Direction = ParameterDirection.Input;
            parameter.Value     = id;

            IDataReader dataReader = cmd.ExecuteReader();

            if (dataReader.Read())
            {
                loadEntity.Retrieve(dataReader, transaction);
                loaded = true;
            }

            return(loaded);
        }
Ejemplo n.º 2
0
        public void CrossReference_PersistWithOne2ManyChild_WithCrossReference_LoadedShouldBeSameAsPersisted()
        {
            try
            {
                IDbConnection connection  = SetupTables();
                ITransaction  transaction = CreateTransaction(connection);

                int id = 45;
                CrossReferenceTestRootEntity entity = new CrossReferenceTestRootEntity();
                entity.IdCol = id;
                entity.Name  = "Org-Name";
                CrossReferenceTestOne2ManyEntity one2ManyEntity = new CrossReferenceTestOne2ManyEntity();
                one2ManyEntity.IdCol      = id;
                one2ManyEntity.IndexNo    = 1;
                one2ManyEntity.Name       = "Child-Entity";
                one2ManyEntity.RootEntity = entity;
                entity.One2ManyEntities.Add(one2ManyEntity);
                entity.Persist(transaction);
                transaction.Commit();

                transaction = CreateTransaction(connection);
                CrossReferenceTestRootEntity loadedEntity = new CrossReferenceTestRootEntity();
                LoadEntityWithId(transaction, loadedEntity, id);

                Assert.IsNotNull(loadedEntity);
                Assert.IsTrue(loadedEntity.One2ManyEntities.Count == 1);
                IEnumerator <CrossReferenceTestOne2ManyEntity> childEnumerator = loadedEntity.One2ManyEntities.GetEnumerator();
                childEnumerator.MoveNext();
                CrossReferenceTestOne2ManyEntity childOne2ManyEntity = childEnumerator.Current;
                Assert.IsNotNull(childOne2ManyEntity);
                Assert.IsTrue(loadedEntity == childOne2ManyEntity.RootEntity);

                transaction.Commit();
                connection.Close();
            }
            catch (System.Exception e)
            {
                LogManager.GetLogger(typeof(DbGateCrossReferenceTest)).Fatal(e.Message, e);
                Assert.Fail(e.Message);
            }
        }
Ejemplo n.º 3
0
        public void CrossReference_PersistWithOne2OneChild_WithCrossReference_LoadedShouldBeSameAsPersisted()
        {
            try
            {
                IDbConnection connection = SetupTables();

                ITransaction transaction            = CreateTransaction(connection);
                int          id                     = 45;
                CrossReferenceTestRootEntity entity = new CrossReferenceTestRootEntity();
                entity.IdCol = id;
                entity.Name  = "Org-Name";
                CrossReferenceTestOne2OneEntity one2OneEntity = new CrossReferenceTestOne2OneEntity();
                one2OneEntity.IdCol      = id;
                one2OneEntity.Name       = "Child-Entity";
                one2OneEntity.RootEntity = entity;
                entity.One2OneEntity     = one2OneEntity;
                entity.Persist(transaction);
                transaction.Commit();

                transaction = CreateTransaction(connection);
                CrossReferenceTestRootEntity loadedEntity = new CrossReferenceTestRootEntity();
                LoadEntityWithId(transaction, loadedEntity, id);
                transaction.Commit();
                connection.Close();

                Assert.IsNotNull(loadedEntity);
                Assert.IsNotNull(loadedEntity.One2OneEntity);
                Assert.IsNotNull(loadedEntity.One2OneEntity.RootEntity);
                Assert.IsTrue(loadedEntity == loadedEntity.One2OneEntity.RootEntity);
            }
            catch (System.Exception e)
            {
                LogManager.GetLogger(typeof(DbGateCrossReferenceTest)).Fatal(e.Message, e);
                Assert.Fail(e.Message);
            }
        }