ฉันทำงานให้กับลูกค้าที่มีโครงการขนาดใหญ่ที่ใช้ Linq-to-SQL เมื่อโครงการเริ่มต้นมันเป็นตัวเลือกที่ชัดเจนเพราะ Entity Framework ขาดคุณสมบัติที่สำคัญบางอย่างในเวลานั้นและประสิทธิภาพของ Linq-to-SQL นั้นดีกว่ามาก
ตอนนี้ EF ได้รับการพัฒนาและ Linq-to-SQL ขาดการสนับสนุน async ซึ่งยอดเยี่ยมสำหรับบริการที่ปรับขนาดได้สูง บางครั้งเรามีคำขอมากกว่า 100 คำขอต่อวินาทีและแม้ว่าเราจะปรับปรุงฐานข้อมูลของเราได้แล้วแบบสอบถามส่วนใหญ่ยังใช้เวลาหลายมิลลิวินาทีในการดำเนินการให้เสร็จสมบูรณ์ เนื่องจากการเรียกฐานข้อมูลแบบซิงโครนัสเธรดจะถูกบล็อกและไม่พร้อมใช้งานสำหรับการร้องขออื่น
เรากำลังคิดที่จะเปลี่ยนไปใช้ Entity Framework สำหรับคุณสมบัตินี้เท่านั้น เป็นเรื่องที่น่าเสียดายที่ Microsoft ไม่ได้ใช้การสนับสนุน async ใน Linq-to-SQL (หรือเป็นการเปิดแหล่งที่มาดังนั้นชุมชนจึงสามารถทำได้)
ภาคผนวกธันวาคม 2561: Microsoft กำลังก้าวไปสู่. NET Core และ Linq-2-SQL ไม่ได้รับการสนับสนุนบน. NET Core ดังนั้นคุณต้องย้ายไปที่ EF เพื่อให้แน่ใจว่าคุณสามารถย้ายไปที่ EF.Core ในอนาคต
นอกจากนี้ยังมีตัวเลือกอื่น ๆ ที่จะต้องพิจารณาเช่นLLBLGen มันเป็นโซลูชัน ORM ที่ครบกำหนดที่มีอยู่แล้วเป็นเวลานานและได้รับการพิสูจน์แล้วในอนาคตว่าเป็นโซลูชันข้อมูล MS (ODBC, ADO, ADO.NET, Linq-2-SQL, EF, EF.core)