Пример #1
0
        /// <summary>
        /// Exclui um registro da base de dados
        /// </summary>
        /// <param name="id">identificador do registro</param>
        public static void Delete(IID id, IBaseModel model)
        {
            try
            {
                model.Connection = DbContext.CreateConnection();
                model.Connection.BeginTransaction();

                //Validar
                model.ValidateDelete();

                TableDefinitionAttribute tableDefinition = FindTableDefinition(model);

                CommandFactory cf = new CommandFactory(model.Connection,
                                                       model.Connection.Transaction,
                                                       model.GetType(), model, null);

                using (Command command = cf.CreateCommandDelete(tableDefinition, id))
                {
                    command.ExecuteNonQuery();
                }

                model.Connection.CommitTransaction();
            }
            catch
            {
                model.Connection.RollbackTransaction();
                throw;
            }
            finally
            {
                if (model.Connection != null)
                {
                    model.Connection.Close();
                }
            }
        }