سؤال

إذا كان لدي مجموعة من الكيانات ، فما هي أسهل طريقة لحذف المجموعة بأكملها من الكيانات (أو لوضعها على هذا النحو ، طاولة 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")>

بالطبع هذا من شأنه إزالة مرجع واحد فقط. إذا تم الرجوع إلى الكائنات (التلميحات أو أعضاء الصفيف الفردي) في مكان آخر ، فستستمر هذه المراجع في العمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top