Question

Si j'ai un tableau d'entités, ce qui est la meilleure façon de supprimer l'ensemble du réseau d'entités (ou de le mettre de cette façon, l'ensemble de la table ORM)? J'ai:

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

Maintenant, pour supprimer toutes les entités, devrais-je utiliser une sorte de boucle? Si oui, comment puis-je accéder aux clés primaires de l'entité individuelle au sein? J'ai essayé:

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

mais cela ne fonctionne pas ...

Était-ce utile?

La solution

EntityLoad retourne un tableau de l'entité des objets boucle afin que nous puissions utiliser et sur cette entityDelete:

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

Comme toujours lors de la suppression des données attention! Je préfère généralement un doux supprimer.

Autres conseils

Si vous souhaitez utiliser la notation de tableau, vous le faites comme ça.

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

Une autre façon de le faire sans faire de ColdFusion faire tout le travail est d'exécuter une requête.

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

Si la suppression du tableau (en termes de libération de la mémoire) est ce que vous voulez faire, ce qui suit devrait fonctionner:

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

Bien sûr, cela ne ferait que supprimer une référence. Si les objets (AllUsers ou les membres individuels de tableaux) sont référencés à un autre endroit, ces références continueraient à travailler.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top