CF9 EntityDelete:如何删除实体
-
23-09-2019 - |
题
如果我有实体的阵列,什么删除实体的整个阵列的最简单的方法(或把它这样,整个ORM表)?我有:
<cfset allUsers = EntityLoad("User", {}, false)/>
现在,删除所有的实体,我会用某种循环的?如果是这样,我怎么访问内的各个实体的主键?我想:
<cfset userTemp = EntityLoad("User", allUsers[i].User.userID, true) />
但没有工作...
解决方案
EntityLoad将返回实体对象的数组,所以我们可以遍历该并使用entityDelete:
<cfloop array="#allUsers#" index="User">
<cfset entityDelete( User )>
</cfloop>
一如以往删除数据时要小心!我一般喜欢软删除。
其他提示
如果你想使用数组表示法,你不喜欢这样。
<cfloop from="1" to="#arraylen(allUsers)#" index="i">
<cfset entityDelete( allUsers[i] )>
</cfloop>
另一种方式来做到这一点而不使ColdFusion的要做的全部工作是执行查询。
<cfset ormexecutequery("DELETE FROM User",true)>
如果删除阵列(在释放内存方面)是你想做的事,下面应该工作:
<cfset allUsers = "">
<!--- or --->
<cfset StructDelete(variables, "allUsers")>
当然,这将仅删除一个引用。如果对象(ALLUSERS或各个阵列成员)被引用别的地方,这些参考文献将继续工作。
不隶属于 StackOverflow