Domanda

Se ho una serie di soggetti, che cosa è il modo più semplice di eliminare l'intero array di entità (o per dirla in questo modo, l'intera tabella ORM)? Ho:

<cfset allUsers = EntityLoad("User", {}, false)/>

Ora per eliminare tutte le entità, dovrei utilizzare una sorta di un ciclo? Se sì, come posso accedere alle singole chiavi entità primarie all'interno? Ho provato:

<cfset userTemp = EntityLoad("User", allUsers[i].User.userID, true) /> 

, ma che non ha funzionato ...

È stato utile?

Soluzione

EntityLoad restituirà un array dell'entità oggetti in modo da poter eseguire un ciclo su questo e utilizzare entityDelete:

<cfloop array="#allUsers#" index="User">
   <cfset entityDelete( User )>
</cfloop>

Come sempre quando si eliminano i dati attenzione! Io generalmente preferisco un morbido eliminare.

Altri suggerimenti

Se si desidera utilizzare la notazione array, lo si fa in questo modo.

<cfloop from="1" to="#arraylen(allUsers)#" index="i">
    <cfset entityDelete( allUsers[i] )>
</cfloop>

Un altro modo per farlo senza fare ColdFusion fare tutto il lavoro è quello di eseguire una query.

<cfset ormexecutequery("DELETE FROM User",true)>

Se l'eliminazione della matrice (in termini di liberazione della memoria) è ciò che si vuole fare, il seguente dovrebbe funzionare:

<cfset allUsers = "">
<!--- or --->
<cfset StructDelete(variables, "allUsers")>

Naturalmente questo eliminerebbe un solo riferimento. Se gli oggetti (AllUsers oi singoli membri dell'array) si fa riferimento da qualche altra parte, questi riferimenti avrebbero continuato a lavorare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top