/// <summary> /// Elimina una document unit. Rimuove anche i riferimenti dei documenti alla DocumentUnit dalla tabella DocumentUnitChain /// </summary> /// <param name="idDocumentUnit"></param> /// <returns>Ritorna n. di record complessivamente eliminati</returns> public static int UdsDeleteDocumentUnit(Guid idDocumentUnit, bool detachDocuments = true) { EntityProvider provider = DbProvider; using (DbTransaction tran = provider.BeginNoSave()) { try { //detach dei documenti if (detachDocuments) { var docChain = DbProvider.UdsGetUnitChain(idDocumentUnit); foreach (var item in docChain) { DetachDocument(item.Document); } } provider.UdsDeleteDocumentUnitChain(idDocumentUnit); provider.UdsDeleteDocumentUnit(idDocumentUnit); int count = provider.SaveChanges(); tran.Commit(); return(count); } catch { try { tran.Rollback(); } catch { } throw; } } }