ในขณะที่ฉันเห็นด้วยในหลักการกับความคิดที่ว่าการเรียงลำดับเป็นตรรกะทางธุรกิจเพราะโดยการแยกมันออกเป็นต้นกำเนิดคุณจะต้องจบลงด้วยบางสิ่งบางอย่างเช่น "ลูกค้าต้องการให้หน้าผลิตภัณฑ์แสดงด้วยภาพเรียงตามวันที่" จากนั้นก็ชัดเจนว่า โดยทั่วไปการเรียงลำดับข้อมูลจะไม่ได้กำหนดเอง - แม้ว่าจะไม่มีการเรียงลำดับเนื่องจากยังคงเป็นการตัดสินใจทางธุรกิจโดยการละเว้น (รายการว่างยังคงเป็นรายการ)
แต่ ... คำตอบเหล่านี้ดูเหมือนจะไม่ได้คำนึงถึงความก้าวหน้าในเทคโนโลยี ORM ฉันสามารถพูดคุยเกี่ยวกับ Entity Framework (ขอหลีกเลี่ยงการโต้แย้งว่านี่เป็น ORM จริงไม่ใช่ประเด็น) จาก Microsoft เป็น นั่นคือสิ่งที่ฉันใช้ แต่ฉันแน่ใจว่า ORM อื่น ๆ มีฟังก์ชันการทำงานที่คล้ายกัน
ถ้าฉันสร้างมุมมองที่พิมพ์อย่างแน่นหนาสำหรับคลาสผลิตภัณฑ์โดยใช้ MS MVC และ Entity Framework และมีความสัมพันธ์กับคีย์ต่างประเทศระหว่างตารางผลิตภัณฑ์และรูปภาพ (เช่น FK_Product_Image_ProductId) ฉันจะสามารถจัดเรียงกล่องได้อย่างรวดเร็ว ภาพในระหว่างการแสดงผลของพวกเขาโดยใช้สิ่งนี้ในมุมมอง:
@foreach(Image i in Model.Image.OrderBy(e => e.DisplayOrder)){ //etc etc... }
มีการกล่าวถึงชั้น Business Logic ที่เฉพาะเจาะจงซึ่งฉันยังใช้เพื่อดำเนินการตรรกะทางธุรกิจของฉัน 80% แต่ฉันจะไม่เขียนฟังก์ชันการเรียงลำดับลงในชั้น Business Logic ของฉันที่เลียนแบบบางสิ่งที่ออกมานอกกรอบ จาก Entity Framework
ฉันไม่คิดว่าจะมีคำตอบที่ถูกต้องสำหรับคำถามนี้นอกจากจะพูดอย่างนั้นแล้ว คุณควรสรุปตรรกะทางธุรกิจที่ซับซ้อนหากเป็นไปได้ แต่ไม่ต้องเสียค่าใช้จ่าย