ORMs (การแมปสัมพันธ์เชิงวัตถุ) ไม่ได้เกิดขึ้นพร้อมกันกับ Stored Procedure ORMs ส่วนใหญ่สามารถใช้กระบวนงานที่เก็บไว้ ORMs ส่วนใหญ่สร้างกระบวนงานที่เก็บไว้หากคุณเลือก ดังนั้นปัญหาไม่ได้เป็นอย่างใดอย่างหนึ่งหรือ
ORM อาจสร้าง SQL ที่ยอมรับไม่ได้ (ในแง่ของประสิทธิภาพ) และบางครั้งคุณอาจต้องการแทนที่ SQL นั้นด้วย SQL ที่สร้างขึ้นด้วยมือ หนึ่งในวิธีที่จะทำให้สำเร็จนี้คือการใช้ SPs (กระบวนงานที่เก็บไว้)
ใน DotNet ห้ามใช้โพรซีเดอร์ที่เก็บไว้หาก:
หากคุณไม่คุ้นเคยกับขั้นตอนการจัดเก็บ (ไม่ใช่กรณีของคุณ แต่รวมไว้เพื่อความสมบูรณ์)
หากคุณไม่ต้องการที่จะแนะนำเลเยอร์ของความซับซ้อนและรอบตัวโครงการของคุณ
คุณกำลังสร้างแอปพลิเคชันที่ควรทำงานกับฐานข้อมูลที่แตกต่างกันหรือที่จะต้องมีการจำลองแบบในเซิร์ฟเวอร์ฐานข้อมูลหลายแห่ง (ข้อ จำกัด ล่าสุดนี้อาจใช้กับฐานข้อมูลบางตัวเท่านั้น)
โปรดทราบว่าจะไม่เปรียบเทียบทริกเกอร์กับ ORM ทริกเกอร์ทำหน้าที่ที่ดีกว่าไม่อยู่ในรหัสแอปพลิเคชันของคุณ (เช่นการบันทึกหรือการซิงโครไนซ์ข้อมูลข้ามฐานข้อมูล)
บางคนชอบการใช้ Stored Procedure มากกว่า SQL ในรหัสด้วยเหตุผลที่แตกต่างกันเช่นความปลอดภัย (เช่นเพื่อป้องกันการฉีด SQL) และความเร็วที่อ้างสิทธิ์ อย่างไรก็ตามนี่เป็นปัญหาที่ค่อนข้างถกเถียงและต้องการการสนทนาอย่างละเอียด
หาก ORM ของคุณไม่สามารถสร้างกระบวนงานที่เก็บไว้ได้และคุณต้องเขียนระบบขนาดใหญ่คุณต้องเพิ่มน้ำหนักของการเข้ารหัสด้วยมือเพิ่มเติมตามกรณีของคุณ