मैंने अपने आप को हमेशा अपने व्यावसायिक तर्क और UI कोड के लिए किसी भी डेटा एक्सेस कोड को पूरी तरह से अलग 'लेयर' में हैंडल करना सिखाया है। यह हमेशा मेरे लिए और मेरे द्वारा देखे गए किसी भी 'नियम' या सर्वोत्तम प्रथाओं के लिए एक बहुत अच्छा आर्किटेक्चर रहा है, फिर भी कोडिंग की इस शैली में फिट होने का प्रबंधन करता है, विशेष रूप से एकल जिम्मेदारी सिद्धांत ।
अपनी अधिकांश घरेलू परियोजनाओं के लिए, मैं अपने खुद के बनाए गए ORM का उपयोग करता हूं, जिसे मैं हमेशा ओपन-सोर्स बनाने का इरादा रखता हूं। हालाँकि तब से, LINQ उपलब्ध हो गया, जो मेरे ORM के काम करने के तरीके (लेकिन .. बेहतर) के समान था।
ऐसा कुछ भी नहीं है जो मैं पहले अपने स्वयं के ORM के साथ कर सकता था जिसे मैं अब LINQ (REST एकीकरण के बिट्स को छोड़कर) के साथ नहीं कर सकता। तो मेरा सवाल है; LINQ मेरा नया डेटा एक्सेस लेयर है? क्या मुझे अब इस परत की आवश्यकता है? क्या मेरे BLL को सीधे LINQ से बात करनी चाहिए? या यह बुरी प्रथा अभी भी है?
संपादित करें:
मूल प्रश्न LINQ से लेकर संस्थाओं तक का जिक्र था, लेकिन LINQ से SQL के संबंध में कई दिलचस्प जवाब हैं। इन दोनों पर लोगों के क्या विचार हैं? मैं LINQ से SQL तक इकट्ठा करता हूँ, वास्तव में एक DAL की जगह नहीं ले सकता, लेकिन Entity फ्रेमवर्क?