2010-01-29 9 views
5

यदि मेरे पास इकाइयों की एक श्रृंखला है, तो इकाइयों की पूरी सरणी को हटाने का सबसे आसान तरीका क्या है (या इसे इस तरह से रखने के लिए, संपूर्ण ओआरएम तालिका)? मेरे पास है:CF9 EntityDelete: इकाइयों को कैसे हटाएं

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

अब सभी इकाइयों को हटाने के लिए, क्या मैं किसी प्रकार के लूप का उपयोग करूंगा? यदि हां, तो मैं अलग-अलग इकाई प्राथमिक कुंजी को कैसे एक्सेस करूं? मैंने कोशिश की:

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

लेकिन बात नहीं बनी ...

उत्तर

10

EntityLoad इकाई की एक सरणी वस्तुओं वापस आ जाएगी तो हम उस पर पाश कर सकते हैं और प्रयोग entityDelete! मैं आमतौर पर एक नरम हटाने पसंद करते हैं।

+0

मुझे लगता है कि यह एक cfloop टैग, नहीं एक cfif – namtax

+1

डी 'ओह के साथ समाप्त करना चाहिए! हां, मैंने उदाहरण को भी सही किया। –

0

तो सरणी (स्मृति को मुक्त कराने के संदर्भ में) को हटाने क्या आप क्या करना चाहते है, तो निम्न कार्य करना चाहिए:

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

बेशक यह केवल एक संदर्भ को हटा देगा। यदि वस्तुओं (सभी उपयोगकर्ता या व्यक्तिगत सरणी सदस्यों) को किसी और जगह संदर्भित किया जाता है, तो ये संदर्भ काम जारी रखेंगे। जब डेटा हटाना सावधान रहना

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

हमेशा की तरह:

6

यदि आप सरणीकरण का उपयोग करना चाहते हैं, तो आप इसे ऐसा करते हैं।

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

कोल्डफ्यूजन बनाने के बिना ऐसा करने का एक और तरीका एक काम निष्पादित करना है।

<cfset ormexecutequery("DELETE FROM User",true)> 
संबंधित मुद्दे