ORM for.NET के मूल्यांकन के लिए क्या मानदंड हैं? [बन्द है]


30

मैं ORM का मूल्यांकन कर रहा हूं।

मैंने SubSonic , Linq-to-SQL और Entity फ्रेमवर्क का उपयोग किया है । मुझे जूनियर्स से लेकर सीनियर्स तक के डेवलपर्स की एक टीम मिली है।

ORM FOR.NET के मूल्यांकन के लिए क्या मापदंड हैं?


8
कोई श्रेष्ठ नहीं है। बहुत सारे विकल्प हैं जिनमें पेशेवरों और विपक्षों का एक समूह है। प्रत्येक तालिका में कुछ अलग लाते हैं।
टोनी

शब्दावली पर एक विवाद: मैं कहूंगा कि SubSonic सबसे निश्चित रूप से एक ORM नहीं है । एक से अधिक .. संबंधपरक से वस्तु एक्सपोजर। यह केवल उन कक्षाओं को उत्पन्न कर सकता है जो सीधे आपके डेटाबेस तालिका स्कीमा को दर्शाते हैं। यह अधिकांश भाग के लिए ठीक काम करता है, लेकिन यह डिज़ाइन बिंदु काफी महत्वपूर्ण है क्योंकि यह EF और NHib से बहुत अलग खेल के मैदान पर है।
क्वेंटिन-स्टारिन

1
@qstarin: जो सबसोनिक को एक ORM जितना LINQ-to-SQL बनाता है।
जॉन सॉन्डर्स

बहुत अच्छा बिंदु, जॉन और qstarin। यह एक बढ़िया रेखा है जिसे आप एक रिलेशनल-टू-ऑब्जेक्ट एक्सपोजर के रूप में वर्गीकृत करेंगे। SubSonic 3.0 में ओआरएम की अवधारणाओं के साथ विशेषताएं हैं जो इनलाइन हैं। विकी कहता है। "ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज में असंगत टाइप सिस्टम के बीच डेटा को परिवर्तित करना। यह प्रभाव, एक" वर्चुअल ऑब्जेक्ट डेटाबेस "बनाता है, जिसे प्रोग्रामिंग भाषा के भीतर से उपयोग किया जा सकता है।" इसके अलावा ormbattle.net पर SubSonic को ORM माना जाता है। आपकी प्रतिक्रिया के लिए दोनों धन्यवाद
Nickz

2
मैं Linq-to-SQL को एक ORM की तुलना में एक शानदार sql जनरेटर की तरह
देखता हूं

जवाबों:


43

यह एक लोडेड सवाल है।
विभिन्न दर्शन के साथ इस विषय पर बहुत अच्छे ओआरएम आते हैं।
जैसे ही आप अपने सुनहरे रास्ते से भटकते हैं (और कभी-कभी जब आप उससे चिपके रहते हैं) तो कोई भी इसके माध्यम से परिपूर्ण नहीं होता है।

ORM का चयन करते समय आपको खुद से क्या पूछना चाहिए:

  1. इसके लिए आपको क्या करने की आवश्यकता है?
    यदि आपके पास पहले से ही अपने आवेदन के लिए आवश्यकताओं का एक सेट है, तो आपको ORM का चयन करना चाहिए जो एक काल्पनिक 'सर्वश्रेष्ठ' के बजाय इनसे बेहतर मेल खाता हो।

  2. क्या आपका डेटा साझा किया गया है या सिर्फ स्थानीय है?
    ओआरएम में बहुत सारे बालों के झड़ने का कारण होता है कि वे कैसे संगामिति को संभालते हैं और डेटाबेस में डेटा में बदलाव करते हैं जब कई उपयोगकर्ता एक ही डेटा के संस्करणों को पकड़ रहे हैं।
    यदि आपका डेटास्टोर एकल-उपयोगकर्ता के लिए है, तो अधिकांश ORM अच्छा काम करेंगे। हालांकि, अपने आप से एक बहु-उपयोगकर्ता परिदृश्य में कुछ कठिन प्रश्न पूछें: ताला कैसे लगाया जाता है? जब मैं किसी ऑब्जेक्ट को हटाता हूं तो क्या होता है? यह अन्य संबंधित वस्तुओं को कैसे प्रभावित करता है? क्या ओआरएम बैकएंड की धातु के करीब काम कर रहा है या क्या यह बहुत अधिक डेटा कैशिंग कर रहा है (स्टैल्सी के जोखिम को बढ़ाने की कीमत पर प्रदर्शन में सुधार)।

  3. क्या ORM अच्छी तरह से आपके आवेदन के लिए अनुकूलित है? यदि किसी सेवा में उपयोग किया जाता है या किसी वेब ऐप के अंदर बैठकर किसी विशेष ORM के साथ काम करना मुश्किल हो सकता है (बहुत सारे प्रदर्शन ओवरहेड, कोड के लिए कठिन)। यह इसके विपरीत डेस्कटॉप ऐप्स के लिए बढ़िया हो सकता है।

  4. क्या आपको डेटाबेस-विशिष्ट संवर्द्धन छोड़ना होगा?
    ORMs SQL के निम्नतम-सामान्य भाजक सेट का उपयोग यह सुनिश्चित करने के लिए करते हैं कि वे विभिन्न डेटाबेस बैकएंड के बहुत से काम करते हैं।
    सभी ओआरएम उपलब्ध सुविधाओं पर समझौता करेंगे (जब तक कि वे विशेष रूप से एकल बैकएंड को लक्षित न करें) लेकिन कुछ आपको अपने चुने हुए बैकएंड में उपलब्ध विशिष्ट वृद्धि का फायदा उठाने के लिए अतिरिक्त व्यवहार को लागू करने की अनुमति देंगे।
    एक विशिष्ट डीबी-विशिष्ट वृद्धि उदाहरण के लिए पूर्ण-पाठ खोज क्षमताओं है; सुनिश्चित करें कि आपका ओआरएम आपको इन सुविधाओं तक पहुंचने का एक तरीका प्रदान करता है यदि आपको उनकी आवश्यकता है।

  5. ORM डेटा मॉडल में बदलाव कैसे करता है?
    कुछ एक निश्चित उपाय के भीतर DB को स्वचालित रूप से अपडेट कर सकते हैं, अन्य कुछ भी नहीं करते हैं और आपको खुद ही गंदा काम करना होगा; अन्य परिवर्तन से निपटने के लिए एक रूपरेखा प्रदान करते हैं जो आपको डेटाबेस अपडेट को नियंत्रित करने देता है।

  6. ओआरएम की वस्तुओं के लिए अपने आवेदन को युगल करने के लिए आपका मन करता है या क्या आप पीओसीओ और उपयोगकर्ता को दृढ़ता के लिए एडेप्टर को संभालना पसंद करते हैं?
    पूर्व आमतौर पर संभाल करने के लिए सरल है, लेकिन आपके ORM- विशिष्ट डेटा ऑब्जेक्ट्स पर हर जगह निर्भरता पैदा करते हैं, बाद वाला थोड़ा अधिक कोड की कीमत पर अधिक लचीला होता है।

  7. क्या आपको कभी भी अपनी वस्तुओं को दूर से स्थानांतरित करने की आवश्यकता होगी?
    दूरस्थ सर्वर से वस्तुओं को लाने के लिए सभी ORM समान नहीं होते हैं, जो संभव है या जो करना असंभव है उसे करीब से देखें। कुछ कुशल हैं, अन्य नहीं।

  8. क्या कोई है जिसे आप मदद के लिए बदल सकते हैं?
    क्या अच्छा व्यावसायिक समर्थन है? परियोजना के आसपास समुदाय कितना बड़ा और सक्रिय है?
    मौजूदा उपयोगकर्ता उत्पाद के साथ क्या समस्याएँ हैं?
    क्या उन्हें जल्दी समाधान मिलता है?

कुछ ORM जिन्हें मैंने देखा:


  • डेवलपर एक्सप्रेस से XPO : छोटा और सरल, कोड-केंद्रित है। वे अपने आवेदन ढांचे eXpressApp के लिए इसका इस्तेमाल करते हैं ।
  • NHibernate
    नि: शुल्क है, लेकिन सीखने की अवस्था कम है। अच्छाई के बहुत सारे, लेकिन सभी खंडित प्रलेखन में कभी-कभी यह वास्तव में प्रासंगिक होता है।
  • LLBLGen Pro
    बहुत ही परिपक्व परियोजना है, सबसे सरल नहीं, लेकिन बहुत सारे विचार इसमें डाले गए हैं।

  • वहां एंटिटी फ्रेमवर्क जियटिंग। अंतिम रिलीज़ बहुत अच्छे हैं और एमएस सुन रहा है, हालांकि यह अभी भी अन्य परिपक्व ओआरएम की तुलना में थोड़ा युवा है।
  • DataObject.Net
    होनहार लग रहा है, लेकिन यह भी एक महत्वपूर्ण परियोजना IMHO जोखिम के लिए थोड़ा नया है। हालांकि काफी सक्रिय है।

बेशक कई अन्य हैं।

आप विवादास्पद साइट ORM बैटल पर एक नज़र डाल सकते हैं जो कुछ प्रदर्शन बेंचमार्क को सूचीबद्ध करता है, हालांकि आपको यह जानना होगा कि कच्ची गति आपके प्रोजेक्ट के लिए सबसे महत्वपूर्ण कारक नहीं है और वेबसाइट के निर्माता DataObject.Net हैं।


3
यह जानकर कि आपने क्या चुना?
स्टीवन एवर्स

धन्यवाद Renaud Bompuis, मैंने कुछ सूचीबद्ध ORM के बारे में नहीं सुना है। आपके द्वारा प्रदान की गई जानकारी विचार के लिए महान भोजन है, धन्यवाद।
निकेज़

1
@SnOrfus: अभी भी XPO का उपयोग कर रहा है, लेकिन मैं LLBLGen में माइग्रेट करने जा रहा हूं, यह ठोस, परिपक्व है और आप नियंत्रण में रहते हैं (इसलिए यदि आपको जरूरत हो तो आप अपने हाथों को गंदा कर सकते हैं / चाहें) और यह चिंताओं को और अधिक अलग करने की अनुमति देता है और ऑब्जेक्ट पुनः उपयोग (एडाप्टर के माध्यम से)।
Renaud Bompuis

3
यह ध्यान देने योग्य है कि एंटिटी फ्रेमवर्क अब संस्करण 4.1 पर है और निश्चित रूप से अब देखने लायक होगा।
शॉन किरॉन

मैं सर्वर पर सर्वर और LINQ पर संग्रहीत प्रोक्स प्यार करता हूँ। इसे डाउन-वोट करने का प्रयास करें! कोई सीखने की अवस्था, कोई आश्चर्य नहीं, कोई संस्करण नहीं, कोई आश्चर्य नहीं!
NoChance

14

मैं NHibernate का उपयोग कर रहा हूँ और इसे बहुत अच्छा पाया है।

मेरे मामले में, एक MS Sql डेटाबेस से जुड़ा हुआ है, लेकिन आप अन्य डेटाबेस से कनेक्ट कर सकते हैं।

इसे उठने और चलने में लंबा समय नहीं लगता है - बस अपने ऑब्जेक्ट को मॉडल पर मैप करें - मैं एक xml फ़ाइल का उपयोग करता हूं लेकिन आप इसे धाराप्रवाह कोड में कर सकते हैं। एक महान समुदाय है, और व्यक्तिगत रूप से मैंने आयेंडे के काम को बहुत मददगार पाया है - मैं NHProf का उपयोग करता हूं जो कि एक sql प्रोफाइल टूल है।

मैं ज्यादातर आउट ऑफ द बॉक्स फंक्शन - स्ट्रेट ऑब्जेक्ट मैपिंग का उपयोग करता हूं, लेकिन मैंने हाइबरनेट क्वेरी लैंग्वेज का भी उपयोग किया है, जिसे पकड़ना काफी आसान है।


सावधान रहें, NHibernate अधिक जटिल मॉडल के लिए मुश्किल हो सकता है। यह सब अच्छी तरह से प्रलेखित है और बहुत अच्छा समझ में आता है, लेकिन अगर आप जागरूक नहीं हैं तो आप समस्याओं में भाग सकते हैं। यह कहना है, सीखने की अवस्था अधिक है, लेकिन यह उत्कृष्ट है।
मैट ओलेनिक

धन्यवाद सैम, मैंने nhibernate का उपयोग नहीं किया है, लेकिन यह SubSonic, Linq-to-SQL और Entity फ्रेमवर्क की तुलना में व्यापक कॉन्फ़िगरेशन की आवश्यकता प्रतीत होती है। यह मेरी विकास टीम के लिए आदर्श नहीं होगा।
Nickz

यदि आप सभी इच्छुक हैं, तो आयेंडे नवंबर / दिसंबर में YOW ऑस्ट्रेलिया सम्मेलन - yowconference.com.au/melbourne/events_tracks/… - पर NHibernate कार्यशाला दे रही है । मैं जिन लोगों के साथ काम करता हूं उनमें से एक इसे थोड़ी देर के लिए इस्तेमाल करता है, इसलिए मुझे उससे सीख लेने का फायदा हुआ।
सैम जे

3
@ अधिकांश कॉन्फ़िगरेशन को स्वचालित किया जा सकता है। मैं धाराप्रवाह जोड़ने की जाँच भी करूँगा।
स्टोनमेटल

@ निक, @stonemetal सहमत, धाराप्रवाह NHibernate चीजों को बहुत आसान बनाता है। यह सबसोनिक जितना तेज नहीं है, लेकिन फिर भी देखने लायक है।
मैट ओलेनिक

6

अफसोस की बात है कि मेरी पिछली तीन नौकरियों में, हमारे पास तीन घर-घर ओआरएम थे। प्रत्येक मामले में, वे ज्यादातर अलग-अलग कारणों से चूसते थे।

मैं हाल ही में एंटिटी फ्रेमवर्क 4 का मूल्यांकन कर रहा हूं और इसका पोको सपोर्ट (एक अच्छा वॉकथ्रू यहां है ) और मैं वास्तव में इस बात से प्रभावित हूं कि यह मेरे चेहरे से कितना बाहर रहता है और मुझे ऐसा महसूस कराता है कि मैं डेटा की बजाए फिर से प्रोग्रामिंग कर रहा हूं।


मैंने सुना है यू जेसे, पिछली नौकरियां मैं घर पर रहने वाले ओआरएम में एक बेहतर स्थिति में थी। प्रतिक्रिया के लिए धन्यवाद।
Nickz

3
घर में रहने वाले ORM हमेशा चूसते हैं। सबसे अच्छे हमेशा क्रैपीस्ट पब्लिक ओआरएम से भी बदतर होते हैं।
जैको प्रीटोरियस

@JacoPretorius उस के लिए काउंटर-उदाहरण हैं ... लेकिन "एक सामान्य नियम के रूप में ..."
pst

6

क्या आप इस बारे में और अधिक व्याख्या करना चाहेंगे कि यह पूछे गए प्रश्न का उत्तर देने के लिए क्या करता है और इसकी अनुशंसा क्यों करता है? स्टैक एक्सचेंज में "लिंक-ओनली आंसर" का बहुत स्वागत नहीं है
gnat

3

मुझे लिन्क बहुत पसंद है। यह सरल है और एक सभ्य डिजाइनर है। हालाँकि, मुझे उम्मीद है कि यह एंटिटी फ्रेमवर्क के पक्ष में है। मैं जनरेटर को संशोधित करने की क्षमता का लाभ उठाने में सक्षम होना चाहता हूं ताकि मेरे पास अनुकूलित वस्तुएं हो सकें।

दूसरों पर (मेरी राय में) सबसे बड़ा लाभ यह है कि वे वी.एस. के साथ बॉक्स से बाहर हैं। यह भी एक नकारात्मक है कि आप एमएस की दया पर हैं (देखें लिनक से सकाल)।


3

[अस्वीकरण: मैं DevExpress के लिए काम करता हूं]

आप यहां DevExpress एप्लीकेशन फ्रेमवर्क द्वारा बनाए गए विशिष्ट एप्लिकेशन के स्क्रीनशॉट देख सकते हैं । इस पृष्ठ में हमारे उत्पादों की बहुत संक्षिप्त समीक्षा भी शामिल है। क्यों , इस बारे में अधिक विस्तृत जानकारी के लिए , मेरा सुझाव है कि आप हमारी वेब साइट पर संबंधित उत्पाद पृष्ठ देखें।

DevExpress XAF और XPO के रूप में, यहाँ क्यों हमारे आवेदन चौखटे चुनने के लिए पर एक अच्छी व्याख्या है। साथ ही, हम समर्थन और प्रलेखन प्रदान करते हैं, जो महत्वपूर्ण और उल्लेख के लायक भी है। किसी भी प्रश्न के मामले में हमसे संपर्क करने के लिए स्वतंत्र महसूस करें।


मैं अभी भी XPO का उपयोग कर रहा हूं और मुझे आगामी अपडेट के बारे में खुशी है।
Renaud Bompuis

2

हम छोटे प्रोजेक्ट्स पर Linq-to-Sql के साथ NHibernate + Fluent NHibernate का उपयोग करते हैं। इसका कारण यह है:

1) (प्राथमिक कारण नहीं) NHibernate लगता है कि डेवलपर्स के बीच एक उच्च "सम्मान" कारक है (यह है)?)?

2) linq-to-SQL की तुलना में, nHibernate ORM मैपिंग को Db ऑब्जेक्ट्स और संस्थाओं के बीच की अनुमति देता है जो 1-टू -1 मैप नहीं करते हैं

3) हमने एनहाइबनेट की तुलना एंटिटी फ्रेमवर्क 4.0 से नहीं की है, लेकिन यहां एक अच्छी तुलना की है: http://ayende.com/blog/archive/2010/01/05/nhibernate-vs.-entity-framework-4.0.aspx

nHibernate के पास कुछ सीखने की अवस्था है और इसके XML नक्शे काफी क्रियात्मक हो सकते हैं, लेकिन धाराप्रवाह Nhibernate साइट प्रलेखन के साथ शुरू करें और अपने तरीके से पीछे की ओर काम करें।


1

वहाँ एक "सबसे अच्छा" ORM ढांचा नहीं है क्योंकि उन सभी में ताकत और कमजोरियों के अलग-अलग संयोजन हैं और यह इस मामले में है कि अगर डेवलपर्स एक क्षेत्र को बेहतर बनाने पर ध्यान केंद्रित करना चुनते हैं तो अन्य क्षेत्र हैं जो तुलना में पीड़ित हैं (कोड पहले बनाम। मॉडल पहले बनाम डेटाबेस पहले)।

दूसरी ओर, बहुत से अच्छे लोग हैं, जिनमें से कुछ आपकी व्यक्तिगत परिस्थितियों और दूसरों की तुलना में दर्शन के लिए बेहतर मेल होंगे ।


संपादित करें: इसके लायक क्या है, मैं वर्तमान में एसक्यूएल के लिए लाइनक का उपयोग कर रहा हूं - ज्यादातर क्योंकि इसके आंशिक रूप से, क्योंकि यह न्यूनतम प्रयास के लिए बहुत कुछ सही करता है और शायद फिर से एंटिटी फ्रेमवर्क के लिए प्रगति करेगा "क्योंकि इसके वहां" (हालांकि इसी तरह से भी है EF4 के बारे में बहुत कुछ सही है और साथ ही कुछ सामान जो गलत है)। चिंता, विशेष रूप से उत्तरार्द्ध के साथ, प्रदर्शन के लिए होगा, लेकिन मेरे अधिकांश मामलों के लिए यह एक बहुत बड़ा मुद्दा नहीं है और मॉडल (L2S और EF) से डायनामिक डेटा और OData को चलाने की क्षमता मेरे लिए काफी लाभकारी है " सस्ता "जीतता है।


आपकी प्रतिक्रिया के लिए धन्यवाद मर्फ़। मैं "सर्वश्रेष्ठ" ओआरएम पर सहमत हूं। हालांकि मैं इस तरह के और अधिक मानकीकरण की ओर देख रहा हूं। ORM में से किसी एक का उपयोग करने से, मेरी टीम में नए डेवलपर और मौजूदा डेवलपर्स को मदद मिलेगी। वर्तमान में जहां सब कुछ, सबसोनिक, ADO.net, linq-to-sql और आदि का उपयोग करना परियोजनाओं और रखरखाव के बीच चल रहा है और अधिक कठिन हो रहा है।
Nickz

ओह, मुझे आपके उपयोग के मामले के लिए सबसे उपयुक्त ORM के लिए आपकी खोज से कोई समस्या नहीं है और मैं पूरी तरह से सवाल पूछने की वांछनीयता से सहमत हूं। मैं स्टैकएक्सचेंज प्रश्नों में "BEST" शब्द के उपयोग के खिलाफ एक व्यर्थ अभियान चला रहा हूं (-:
मर्फ़

1

मैं आपको DevExpress XPO पर एक नज़र डालने की सलाह दूंगाDevExpress XAF के साथ यह किसी भी डेवलपर के जीवन को आसान बना देगा, जब उसका सीखने की अवस्था पार हो जाएगी।


एक्सएएफ एक्सपीओ पर आधारित है जो ओआरएम है। XAF खुद ही इस पर निर्माण करता है और लॉजिक और "स्वचालित" UI आदि को जोड़ देता है
सांचा

कृपया समझाएं कि आप क्यों विश्वास करते हैं कि DevExpress XAF डेवलपर के जीवन को आसान बना देगा।

@ साचा, आपके संकेत के लिए धन्यवाद। मैंने अपनी पोस्ट सही कर दी है।
योगी यांग 007

@Mark, XAF XPO के साथ-साथ एक ORM के साथ-साथ UI जनरेटर के रूप में भी काम करता है, इसलिए डेवलपर के लिए न्यूनतम कोडिंग के साथ .NET में पूर्ण कार्यात्मक एप्लिकेशन बनाना आसान हो जाता है।
योगी यांग 007

मेरी ओर से XAF के लिए एक टिप्पणी: यह मध्यम जटिल व्यावसायिक तर्क वातावरण के लिए एक महान प्रणाली है क्योंकि यह कारकों में उन लोगों के लिए विकास के समय को गति देता है। नकारात्मक पक्ष यह है कि, दी गई सीमाओं पर, इसे फिर से विस्तारित करने में बहुत समय लगता है। उदाहरण के लिए पदानुक्रमित उपयोगकर्ता (टीमों की तरह तर्क के साथ) और 'एक उपयोगकर्ता केवल स्वयं और / या उसके अधीनस्थों की वस्तुओं को देख सकता है' बॉक्स से बाहर समर्थित नहीं है। तो, XAF के पास पेशेवरों और विपक्षों के लिए यह वास्तव में मूल्यांकन करने की आवश्यकता है कि क्या यह एक परियोजना के लिए सही फिट है - IMHO। लेकिन यह निश्चित रूप से एक अच्छी तरह से किया नींव है अगर यह फिट बैठता है।
सांचा

1

हमारे पास एंटिटी फ्रेमवर्क के साथ अच्छी किस्मत है। हमारी स्थिति कुछ असामान्य है, हालांकि - हम रिपोर्टिंग टीम के लिए डेटा संग्रह करते हैं, इसलिए वे वास्तव में डेटाबेस को डिज़ाइन करते हैं। हम डीबी प्राप्त करते हैं और फिर उसमें से डेटा एक्सेस कक्षाओं को उत्पन्न करने के लिए बस ईएफ का उपयोग करते हैं। हमारे लिए बहुत अच्छा काम करता है, लेकिन हम सिर्फ बल्क डेटा लोड करते हैं, इसलिए मैं इस बात की प्रतिज्ञा नहीं कर सकता कि यह अधिक लेन-देन वाले वातावरण में कितना अच्छा है।


2
हाँ, मैं EF 4 का प्रशंसक हूँ, जो पिछले संस्करण की तुलना में बहुत बेहतर है।
निकोज

1

NHibernate (+ FluentNHibernate) मेरे लिए डिफ़ॉल्ट विकल्प होगा। यह बहुत लचीला, एक्सटेंसिबल और मजबूत है। इसे उपयोगकर्ताओं की एक बड़ी मात्रा मिली है और इसे बहुत सक्रिय रूप से बनाए रखा गया है। नकारात्मक पक्ष खड़ी सीखने की अवस्था है।

माइंडस्केप का लाइटस्पीड सरल और उपयोगकर्ता के अनुकूल है, लेकिन फिर भी काफी लचीला और सक्षम है। इसमें L2S / EF जैसी डिज़ाइनर सतह और एक UnitOfWork कार्यान्वयन है।


माइंडस्केप का लाइटस्पीड वास्तव में दिलचस्प लगता है।
निकोज

1

खैर, कोई "सर्वश्रेष्ठ" विकल्प नहीं है, लेकिन मैं कहूंगा कि एसक्यूएल के लिए नियमित रूप से पुराने लाइनक आपकी आवश्यकताओं को पूरा करता है। यह एक "सच" ORM प्रति se नहीं है, लेकिन यह बहुत हल्का है और आपको इसके बारे में पता किए बिना कोड लिखने की सुविधा देता है, अगर यह समझ में आता है। मेरे कहने का मतलब यह है कि आप dbmlफाइल के रूप में लाइनक के बारे में वास्तव में जागरूक होने के बिना, सामान्य रूप से कोड लिखना जारी रख सकते हैं । आप अभी भी इस पर सार लिख सकते हैं, रिपॉजिटरी या गेटवे पैटर्न का उपयोग कर सकते हैं, और एल 2 एस एक ओआरएम की मुख्य भूमिका को पूरा करता है, जिसे ऑब्जेक्ट-रिलेशनल मिसमैच के आसपास प्राप्त करना है।

एंटिटी फ्रेमवर्क थोड़ा भारी है, और जब तक मैं केवल इसे थोड़ा "थोड़ा-बहुत" अपने चेहरे पर "मूल लिनक से सक्ल की तुलना में" के साथ दबोच लिया है, लेकिन EF Linq की तुलना में एक सच्चे ORM के बहुत अधिक है। मैं उन सभी मानदंडों को देखूंगा जिन्हें आप ORM में देख रहे हैं। क्या यह सिर्फ इसलिए है क्योंकि आप कच्ची एसक्यूएल लिखने से बचना चाहते हैं, या इससे भी बदतर, सैकड़ों संग्रहीत प्रक्रियाएं हैं। क्या आपको कुछ अतिरिक्त विशेषताओं की आवश्यकता है जो कच्चे Linq से Sql को प्रदान नहीं कर सकते हैं? आपको उन सवालों के जवाब देने की जरूरत है, लेकिन आपकी संक्षिप्त आवश्यकता ("हल्का और उपयोग करने में आसान") के आधार पर मुझे लगता है कि लिंकन सबसोनिक की तरह कुछ आसान है, और विजुअल स्टूडियो के लिए अंतर्निहित है।


0

ईसीओ :) यह एक ओआरएम से बहुत अधिक है, जबकि राज्य मशीनों और निष्पादन योग्य ओसीएल (अर्थात् ईएएल) का समर्थन करता है। 12 डोमेन कक्षाओं की सीमा के साथ एक मुफ्त संस्करण मौजूद है जो मुझे लगता है कि छोटी परियोजनाओं के लिए बहुत साफ-सुथरा होना चाहिए।


4
यह उपयोगी होगा यदि आपने क्यों समझाया।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.