मैं उस ग्राहक के लिए काम कर रहा हूं जिसके पास एक बड़ा प्रोजेक्ट है जो Linq-to-SQL का उपयोग कर रहा है। जब परियोजना शुरू हुई तो यह स्पष्ट पसंद थी, क्योंकि उस समय एंटिटी फ्रेमवर्क में कुछ प्रमुख विशेषताओं का अभाव था और लिनक-टू-एसक्यूएल का प्रदर्शन काफी बेहतर था।
अब EF विकसित हो गया है और Linq-to-SQL में async समर्थन की कमी है, जो अत्यधिक स्केलेबल सेवाओं के लिए बहुत अच्छा है। हमारे पास कभी-कभी प्रति सेकंड 100+ अनुरोध होते हैं और हमने अपने डेटाबेस को अनुकूलित करने के बावजूद, अधिकांश प्रश्नों को पूरा करने के लिए कई मिलीसेकंड लेते हैं। सिंक्रोनस डेटाबेस कॉल के कारण, थ्रेड ब्लॉक किया गया है और अन्य अनुरोधों के लिए उपलब्ध नहीं है।
हम पूरी तरह से इस सुविधा के लिए, एंटिटी फ्रेमवर्क पर स्विच करने के बारे में सोच रहे हैं। यह शर्म की बात है कि Microsoft ने Linq-to-SQL में async सपोर्ट को लागू नहीं किया (या इसे ओपन-सोर्स किया गया, ताकि समुदाय ऐसा कर सके)।
परिशिष्ट दिसंबर 2018: Microsoft .NET कोर की ओर बढ़ रहा है और Linq-2-SQL .NET Core पर समर्थन नहीं करता है, इसलिए आपको यह सुनिश्चित करने के लिए EF में जाने की आवश्यकता है कि आप भविष्य में EF.Core पर माइग्रेट कर सकते हैं।
विचार करने के लिए कुछ अन्य विकल्प भी हैं, जैसे कि LLBLGen । यह एक परिपक्व ओआरएम समाधान है जो पहले से ही एक लंबे समय से मौजूद है और अधिक भविष्य के सबूत साबित हुआ है, फिर एमएस डेटा समाधान (ODBC, ADO, ADO.NET, Linq-2-SQL, EF, EF.core)।