private void DataPortal_Delete(CriteriaCs criteria)
        {
            try
            {
                SessionCode = OpenSession();
                BeginTransaction();

                //Si no hay integridad referencial, aquí se deben borrar las listas hijo
                CriteriaEx criterio = GetCriteria();
                criterio.AddOidSearch(criteria.Oid);

                moleQule.Store.Data.SupplierRecord obj = (moleQule.Store.Data.SupplierRecord)(criterio.UniqueResult());
                _base.Record.CopyValues(obj);

                _base.ProviderBase.Productos = ProductoProveedores.GetChildList(this, false);
                _base.ProviderBase.Productos.Clear();
                _base.ProviderBase.Productos.Update(this);

                Session().Delete(obj);
                Transaction().Commit();
            }
            catch (Exception ex)
            {
                if (Transaction() != null)
                {
                    Transaction().Rollback();
                }
                iQExceptionHandler.TreatException(ex);
            }
            finally
            {
                CloseSession();
            }
        }
        protected override void DataPortal_Update()
        {
            if (IsDirty)
            {
                try
                {
                    moleQule.Store.Data.SupplierRecord obj = Session().Get <moleQule.Store.Data.SupplierRecord>(Oid);

                    //Cambiamos todos los objetos dependientes del tipo de Acreedor
                    if (TipoAcreedor != obj.TipoAcreedor)
                    {
                        UpdateTipo((ETipoAcreedor)obj.TipoAcreedor);
                    }

                    obj.CopyValues(Base.Record);
                    Session().Update(obj);
                }
                catch (Exception ex)
                {
                    iQExceptionHandler.TreatException(ex);
                }
            }
        }