มีเหตุผลที่ดีที่จะไม่ใช้ ORM หรือไม่? [ปิด]
ตามที่กล่าวไว้ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ระหว่างฝึกงานฉันได้ใช้NHibernateกับโปรเจ็กต์ขนาดเล็กบางโปรเจ็กต์ซึ่งส่วนใหญ่ฉันเขียนโค้ดและออกแบบด้วยตัวเอง ตอนนี้ก่อนที่จะเริ่มโปรเจ็กต์ที่ใหญ่กว่านี้มีการอภิปรายกันว่าจะออกแบบการเข้าถึงข้อมูลอย่างไรและจะใช้เลเยอร์ ORM หรือไม่ ในขณะที่ฉันยังอยู่ในการฝึกงานและยังคงคิดว่าตัวเองเป็นมือใหม่ในการเขียนโปรแกรมระดับองค์กรฉันจึงไม่ได้พยายามผลักดันในความคิดของฉันซึ่งก็คือการใช้ตัวทำแผนที่เชิงสัมพันธ์กับฐานข้อมูลสามารถทำให้การพัฒนาง่ายขึ้นได้มาก นักเขียนโค้ดคนอื่น ๆ ในทีมพัฒนามีประสบการณ์มากกว่าฉันมากดังนั้นฉันคิดว่าฉันจะทำตามที่พวกเขาพูด :-) อย่างไรก็ตามฉันไม่เข้าใจเหตุผลหลักสองประการที่ไม่ใช้ NHibernate หรือโครงการที่คล้ายกัน: เราสามารถสร้างอ็อบเจ็กต์การเข้าถึงข้อมูลของตัวเองด้วยคิวรี SQL และคัดลอกแบบสอบถามเหล่านั้นออกจาก Microsoft SQL Server Management Studio การดีบัก ORM อาจเป็นเรื่องยาก ดังนั้นแน่นอนว่าฉันสามารถสร้างชั้นการเข้าถึงข้อมูลของฉันด้วยจำนวนมากSELECTฯลฯ แต่ที่นี่ฉันพลาดข้อได้เปรียบของการรวมอัตโนมัติคลาสพร็อกซีที่โหลดขี้เกียจและความพยายามในการบำรุงรักษาที่ต่ำกว่าหากตารางได้รับคอลัมน์ใหม่หรือคอลัมน์ได้รับ เปลี่ยนชื่อ (การอัปเดตจำนวนมากSELECT, INSERTและUPDATEคำสั่งกับการอัปเดตการตั้งค่าการทำแผนที่และอาจ refactoring เรียนธุรกิจและ DTOs.) นอกจากนี้การใช้ NHibernate คุณสามารถประสบปัญหาที่คาดไม่ถึงหากคุณไม่รู้จักกรอบงานเป็นอย่างดี ตัวอย่างเช่นเชื่อมั่น Table.hbm.xml ที่คุณตั้งค่าความยาวของสตริงให้ตรวจสอบโดยอัตโนมัติ อย่างไรก็ตามฉันยังสามารถจินตนาการถึงจุดบกพร่องที่คล้ายกันในชั้นการเข้าถึงข้อมูลแบบ "ง่ายๆ" SqlConnection ในที่สุดข้อโต้แย้งเหล่านั้นที่กล่าวถึงข้างต้นเป็นเหตุผลที่ดีที่จะไม่ใช้ ORM …