5

如果我有一个实体数组,那么删除整个实体数组(或者说是整个 ORM 表)的最简单方法是什么?我有:

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

现在要删除所有实体,我会使用某种循环吗?如果是这样,我如何访问其中的单个实体主键?我试过:

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

但这没有用...

4

3 回答 3

10

EntityLoad 将返回一个实体对象数组,因此我们可以遍历它并使用 entityDelete:

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

删除数据时要小心!我通常更喜欢软删除。

于 2010-01-29T16:42:59.983 回答
6

如果你想使用数组表示法,你可以这样做。

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

在不让 ColdFusion 完成所有工作的情况下执行此操作的另一种方法是执行查询。

<cfset ormexecutequery("DELETE FROM User",true)>
于 2010-01-29T17:06:42.157 回答
0

如果删除数组(就释放内存而言)是您想要做的,以下应该可以工作:

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

当然,这只会删除一个引用。如果对象(allUsers 或单个数组成员)在其他地方被引用,这些引用将继续工作。

于 2010-01-29T13:51:03.580 回答