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

            IDbCommand cmd = transaction.CreateCommand();

            cmd.CommandText = "select * from constraint_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);
        }
Esempio n. 2
0
        public void ConstraintValidation_DeleteRootWithOneToManyChild_WithRestrictConstraint_ShouldThrowException()
        {
            IDbConnection connection = SetupTables();

            ITransaction transaction = CreateTransaction(connection);
            int          id          = 45;
            ConstraintTestDeleteRestrictRootEntity entity = new ConstraintTestDeleteRestrictRootEntity();

            entity.IdCol = id;
            entity.Name  = "Org-Name";
            entity.Persist(transaction);
            transaction.Commit();

            transaction = CreateTransaction(connection);
            ConstraintTestOne2ManyEntity one2ManyEntity = new ConstraintTestOne2ManyEntity();

            one2ManyEntity.IdCol = id;
            one2ManyEntity.Name  = "Child-Org-Name";
            one2ManyEntity.Persist(transaction);
            transaction.Commit();

            transaction = CreateTransaction(connection);
            ConstraintTestDeleteRestrictRootEntity loadedEntity = new ConstraintTestDeleteRestrictRootEntity();

            LoadEntityWithId(transaction, loadedEntity, id);
            loadedEntity.Status = EntityStatus.Deleted;
            Assert.Throws <PersistException>(() => loadedEntity.Persist(transaction));
            transaction.Commit();
            connection.Close();
        }