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")>

もちろん、これは 1 つの参照のみを削除します。オブジェクト (allUsers または個々の配列メンバー) が別の場所で参照されている場合、これらの参照は引き続き機能します。

于 2010-01-29T13:51:03.580 に答える