Pregunta

Si tengo una serie de entidades, cuál es la forma más fácil de borrar toda la gama de entidades (o, para decirlo de esta manera, toda la tabla ORM)? Tengo:

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

Ahora para borrar todas las entidades, habría que utilizar algún tipo de un bucle? Si es así, ¿cómo puedo acceder a las claves primarias entidad individual dentro? Probé:

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

pero que no funcionó ...

¿Fue útil?

Solución

EntityLoad devolverá un array de la entidad objetos de modo que podamos bucle sobre que y utilizar entityDelete:

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

Como siempre cuando se eliminan los datos que tenga cuidado! en general, yo prefiero una eliminación suave.

Otros consejos

Si desea utilizar la notación de matriz, lo haces de esta manera.

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

Otra manera de hacer esto sin hacer ColdFusion hacer todo el trabajo es para ejecutar una consulta.

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

Si la eliminación de la matriz (en términos de liberación de memoria) es lo que quiere hacer, lo siguiente debe funcionar:

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

Por supuesto esto sólo eliminaría una referencia. Si se hace referencia a otro lugar los objetos (allUsers o los miembros de la matriz individuales), estas referencias se seguirían trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top