2011-07-19 6 views
5

Tengo el siguiente bloque de código que recupera un nodo de documento en kentico y lo elimina. Elimina el nodo kentico, pero no el tipo de documento subyacente que permanece en el datase. ¡¿Ayuda?!Kentico TreeNode Método de eliminación no eliminar dependencias

CMS.TreeEngine.TreeProvider provider = new CMS.TreeEngine.TreeProvider(CMS.CMSHelper.CMSContext.CurrentUser); 
CMS.TreeEngine.TreeNode image = provider.SelectSingleNode(new Guid(imageID), "en-US", CMS.CMSHelper.CMSContext.CurrentSite.SiteName); 

if (image != null) 
{ 
    CMS.TreeEngine.TreeNode school = provider.SelectSingleNode(image.Parent.NodeID, "en-US", true, true); 
    if (school != null) 
    { 
     string CMSUserID = school.GetValue("CMSUserID").ToString(); 
     if (CMSUserID == ui.UserID.ToString()) 
     { 
      image.Delete(false);           
     } 
    } 
} 

Respuesta

8

Debe utilizar el método DeleteDocument del espacio de nombres CMS.WorkflowEngine. Asegura que todos los objetos dependientes sean eliminados.

DocumentHelper.DeleteDocument (image, provider, true, true, true);

+0

Gracias que funcionó. Extraño que mi código original no funcione, ¿no uso ningún flujo de trabajo de Kentico? – Grimboify

+0

El uso del método de flujo de trabajo garantiza que se eliminen TODOS los objetos dependientes. Estoy de acuerdo en que el método Treenode.Delete() debería funcionar como esperaba, especialmente porque está utilizando el método sobrecargado con preservar el conjunto de datos a 'falso' ... –

Cuestiones relacionadas