如果我有一个实体数组,最简单的方法是删除整个实体数组(或者这样说,整个ORM表)?我有:
<cfset allUsers = EntityLoad("User", {}, false)/>
现在要删除所有实体,我会使用某种循环吗?如果是这样,我如何访问单个实体主键?我试过了:
<cfset userTemp = EntityLoad("User", allUsers[i].User.userID, true) />
但这不起作用......
答案 0 :(得分:10)
EntityLoad将返回一个实体对象的数组,以便我们可以遍历它并使用entityDelete:
<cfloop array="#allUsers#" index="User">
<cfset entityDelete( User )>
</cfloop>
与删除数据时一样要小心!我通常更喜欢软删除。
答案 1 :(得分:6)
如果你想使用数组表示法,你可以这样做。
<cfloop from="1" to="#arraylen(allUsers)#" index="i">
<cfset entityDelete( allUsers[i] )>
</cfloop>
在不进行ColdFusion的情况下完成所有工作的另一种方法是执行查询。
<cfset ormexecutequery("DELETE FROM User",true)>
答案 2 :(得分:0)
如果您想要删除数组(在释放内存方面),以下内容应该有效:
<cfset allUsers = "">
<!--- or --->
<cfset StructDelete(variables, "allUsers")>
当然这只会删除一个引用。如果在其他地方引用了对象(allUsers或单个数组成员),这些引用将继续有效。