2011-06-06 8 views
5

मैं कई उपयोगकर्ताओं के साथ एक वेबसाइट बनाना चाहता हूं और स्पष्ट रूप से बड़ी मात्रा में डेटाबेस के साथ, और मुझे ईएफ या एनएचबीरनेट में अनुभव नहीं है, मेरे लिए क्या अनुशंसा की जाती है?एमवीसी के साथ स्क्रैच से एक वेबसाइट बनाना, कौन सा ओआरएम बेहतर, ईएफ या एनएचबीरनेट है?

+1

[nhibernate के संभावित डुप्लिकेट , इकाई ढांचे, सक्रिय रिकॉर्ड या linq2sql] (http://stackoverflow.com/questions/1377236/nhibernate-entity-framework-active-records-or-linq2sql) –

उत्तर

4

ईएफ बहुत अच्छी तरह से .NET और विजुअल स्टूडियो के साथ एकीकृत है। आपको विजुअल स्टूडियो के अंदर एक बहुत अच्छा डिजाइनर देता है, और लिनक्यू का लाभ उठाने के लिए लिखे गए प्रश्नों को लिखने के लिए बहुत आसान है।

मेरे लिए, यह कोई ब्रेनर नहीं है। मैं बिना किसी संदेह के ईएफ 4 के साथ जाऊंगा।

1

आप पहली बार कर रहे हैं मैं एफई साथ जाने के लिए आप की सिफारिश करेंगे क्योंकि इसके साथ कोई और अधिक विन्यास और छिपा हुआ गुण ज़र्द करने के लिए अपने आसान .... सिर्फ वस्तु को जोड़ने के लिए कोई अतिरिक्त प्रयासों लागू करने के लिए और अपने काम की जरूरत है किया हुआ।

लेकिन यदि आप बेहतर प्रदर्शन देख रहे हैं तो NHibernate के लिए जाएं।

1

उत्तर इस बात पर निर्भर करता है कि आप बैकएंड पर किस डेटाबेस का उपयोग कर रहे हैं। यदि आप किसी भी माइक्रोसॉफ्ट डेटाबेस का उपयोग कर रहे हैं तो ईएफ जाने का रास्ता है।

ओरेकल एक ग्राहक (यह आ रहा है) अभी तक एफई का समर्थन करता है कि नहीं है, तो आप ओरेकल से बात करने तक वे अपने ग्राहक को अद्यतन NHibernate का उपयोग करना होगा।

0

मैं, NHibernate के लिए जाना चाहते हैं, क्योंकि यह आप प्रदर्शन एफई की तुलना में बेहतर बदल सकते हैं और विभिन्न डेटाबेस में बेहतर पोर्टेबल है।

पहली बार के लिए asp.net MVC के उपयोग करते समय, आप S#arp architecture उपयोग करने पर विचार कर सकते हैं। यह NHibernate का उपयोग करता है। वेबसाइट पर यह स्पष्ट रूप से समझाया गया है कि कैसे जल्दी से शुरू किया जाए।

0

न तो।

मैंने पिछले वर्ष के लिए ईएफ का उपयोग किया है और मेरी समस्याएं परेशानी के लायक नहीं हैं।

मैं अपने साथियों के इस बता दिया है - अगर मैं समय में वापस जा सकते हैं मैं इसे दूर सार संक्षेप एक पतली API से संग्रहित प्रक्रियाओं का प्रयोग करेंगे।

या तो वह या "हल्के वजन" ओआरएम जैसे डैपर या भारी का उपयोग करें।

ईएफ ने मुझे बहुत अधिक ब्लोट, एसोसिएशन (विशेष रूप से विरासत मॉडल) के साथ जटिलता, बग की कभी तय नहीं की, और एमवीसी जैसे स्टेटलेस वातावरण में "अद्यतन" इकाइयों के साथ समस्याएं दीं।

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

कहा जा रहा है - मैं NHibernate इस्तेमाल नहीं किया है तो मैं उस पर टिप्पणी नहीं कर सकता, केवल इकाई की रूपरेखा पर टिप्पणी।

धातु के करीब चिपकें - आपको लंबे समय तक बेहतर प्रदर्शन मिलेगा। "असली" मॉडल में कोड लिखें - एसक्यूएल, इंडेक्स का उपयोग करें, एसक्यूएल सर्वर (या ओरेकल) इंजन को यह करने दें कि यह सबसे अच्छा करता है।

LINQ ढांचे के अनुरूप और बुद्धिमान के रूप में, आईएमओ (और हम सब कुछ यहां कर सकते हैं, राय दे सकते हैं), LINQ-Entities केवल एक पर्याप्त मूल SQL उत्पन्न नहीं करता है जब आपके पास एक गैर-मूल मॉडल होता है (जो अधिकांश लोग करते हैं)।

मेरे EF4 पालतू peeves:

  1. नहीं कर पा रहे उत्सुक लोड केवल कुछ "प्रकार"। उदा। यदि आपके पास Post और Location*..* के रूप में हैं, और आपके पास Question पोस्ट के प्रकार के रूप में है, तो Location पुनर्प्राप्त करने का कोई तरीका नहीं है और बस यह Question है। आपको या तो सभीPosts लोड करना होगा, या अज्ञात प्रकार प्रक्षेपण का उपयोग करना होगा। सामान्य रूप से, उत्सुक लोडिंग बेहद दर्दनाक है।

  2. एक स्टेटलेस, पीओसीओ परिदृश्य में मौजूदा इकाई पर रिश्ते को अद्यतन करना। फिर, अगर आप एक Post है, जो कई Location की है है, और आप परिवर्तनLocation एक मौजूदा Post से जुड़ा हुआ है के लिए, वहाँ एक MVC नियंत्रक कार्रवाई के साथ ऐसा करने के लिए कोई आसान तरीका है चाहता हूँ। ईएफ को रिश्ते को मानने के लिए modified जब आप पीओसीओ के साथ काम करते हैं, तो आपको वास्तव में इसे संशोधित करने की आवश्यकता होती है। लेकिन अगर आपके पास पीओसीओ है, तो रिश्ते आमतौर पर ICollection<TPOCO> होते हैं, इसलिए आपके पास इन तरीकों से निर्मित नहीं होते हैं। जब आप Save करते हैं तो आप ओएसएम की गड़बड़ी में एंटीटी स्टेट को मैन्युअल रूप से सेट करते हैं। मैं मूल रूप से बाएं से दाएं, में इकाइयों को विलय कर रहा हूं।

  3. बयानों का कोई बैचिंग नहीं। मेरा मानना ​​है कि एनएचबीर्नेट इसका समर्थन करता है। यह ईएफ के साथ बड़ी समस्या है, खासकर यदि आप एक ही यात्रा में एकाधिक ऑब्जेक्ट्स अपडेट करना चाहते हैं। मैं आम तौर पर पहले स्थान पर ईएफ के बिंदु को हराकर एक संग्रहित प्रक्रिया का उपयोग कर समाप्त होता हूं।

  4. एनम के लिए लुकअप टेबल मैप नहीं कर सकता।। ठीक है, तो यह एक बड़ा मुद्दा नहीं है, लेकिन यह एक परेशान है। लुक टेबल एक enum लिए एक प्राकृतिक फिट हैं, लेकिन एफई बस इसे समर्थन नहीं करता है -। दिन 1. कोई विचार क्यों इस में डाल नहीं किया गया है से समुदाय से अपील के बावजूद

संबंधित मुद्दे