एंटिटी फ्रेमवर्क 4 / POCO - कहां से शुरू करें? [बन्द है]


183

मैं थोड़ी देर के लिए प्रोग्रामिंग कर रहा हूं और इससे पहले LINQ-To-SQL और LINQ-To-Entities का उपयोग किया है (हालांकि संस्थाओं का उपयोग करते समय यह इकाई / तालिका 1-1 संबंध पर रहा है - यानी L2SQL से अधिक भिन्न नहीं है)

मैं उलटा नियंत्रण, कार्य की इकाई, पोक्सो और रिपॉजिटरी पैटर्न के बारे में बहुत कुछ पढ़ रहा हूं और अपने नए अनुप्रयोगों में इस पद्धति का उपयोग करना चाहूंगा।

जहां मैं संघर्ष कर रहा हूं वह EF4 के लिए एक स्पष्ट, संक्षिप्त शुरुआती मार्गदर्शक ढूंढ रहा है जो EF1 के ज्ञान को ग्रहण नहीं करता है।

मुझे जिन विशिष्ट प्रश्नों के उत्तर देने की आवश्यकता है, वे हैं:

कोड पहले / मॉडल पहले? EF4 के संबंध में पेशेवरों / विपक्ष (यानी क्या होगा यदि मैं पहले कोड करता हूं, बाद की तारीख में कोड को बदल दूं और अपने डीबी मॉडल को फिर से बनाने की आवश्यकता है - क्या डेटा संरक्षित और परिवर्तित या गिरा हुआ है?)

यह मानते हुए कि मैं कोड-प्रथम जा रहा हूं (मैं देखना चाहता हूं कि EF4 कैसे एक DB स्कीमा में परिवर्तित होता है) मैं वास्तव में कैसे शुरू करूं? काफी बार मैंने इकाई आरेखों के साथ लेख देखा है "तो यह मेरा इकाई मॉडल है, अब मैं जा रहा हूं ..." - दुर्भाग्य से, मैं स्पष्ट नहीं हूं कि अगर उन्होंने डिजाइनर में मॉडल बनाया है, तो इसे बचाया कोड उत्पन्न करने के बाद किसी भी अन्य ऑटो-कोड पीढ़ी को बंद कर दिया -या- उन्हें कोडित किया गया है (POCO)? कक्षाएं और किसी तरह उन्हें deisgner दृश्य में आयात किया?

मुझे लगता है कि मुझे वास्तव में क्या चाहिए, यह समझने की जरूरत है कि "जादू" कहां से आता है और अगर मैं सिर्फ एक डीबी से सीधे ईएफ मॉडल पैदा नहीं कर रहा हूं तो इसे खुद कैसे जोड़ना है।

मुझे पता है कि सवाल थोड़ा अस्पष्ट है, लेकिन मुझे नहीं पता कि मुझे क्या पता नहीं है - इसलिए किसी भी इनपुट / सुधार / स्पष्टीकरण की सराहना की।

कहने की जरूरत नहीं है, मैं किसी को भी यहां बैठने और मुझे ईएफ सिखाने की उम्मीद नहीं करता - मैं कुछ अच्छे ट्यूटोरियल / मंचों / ब्लॉग / आदि को पसंद करूंगा। पूर्ण निकाय newbies के लिए


3
वास्तव में अपने कनेक्शन के जीवनकाल के साथ वास्तव में सावधान रहें: bit.ly/fi83NV यह कुछ ऐसा है जिसे आपको वास्तव में तब पता होना चाहिए जब संदर्भों में सुधार कर रहे हों। यह काम करते हुए दिखाई दे सकता है लेकिन वास्तव में धीरे-धीरे अधिक से अधिक खुले कनेक्शनों को
देखता है

@ ब्रिटीशड्यूपर - बहुत अच्छी सलाह। यह वास्तव में हमें बाहर निकालता है लेकिन विपरीत तरीके से - हम रिपॉजिटरी को पुनः प्राप्त करने के लिए एक आईओसी कंटेनर का उपयोग कर रहे थे और एक मुद्दा था जहां रिपॉजिटरी को सौंपा गया संदर्भ लंबे समय के बाद कनेक्शन बंद कर देगा, लेकिन निपटारा नहीं किया जाएगा / समान। हमने अंततः एक IsDisposed () के साथ खुद को संदर्भ बढ़ाया, जिसने सामान्य निपटान राज्य और कनेक्शन राज्य को काटने की जाँच की, जो हमें आवश्यकता पड़ने पर निर्माण करने की अनुमति देता है।
बेसिक

एक और आसान टिप यह है कि एक नया संदर्भ प्राप्त करते समय, पुराने संदर्भ से जुड़ी वस्तुओं में उपयुक्त परिवर्तन ट्रैकिंग नहीं होगी और यह संदर्भ गलत मिलान वाले मुद्दों का कारण बनेगी - इसलिए यदि आपको एक लंबे समय से चल रहा ऐप मिल गया है और संदर्भ मध्य में बदल गया है- निष्पादन, आपको अपनी सभी संस्थाओं को पुनः प्राप्त करने की आवश्यकता है। इसे और अधिक रोचक बनाने के लिए, हमें वास्तव में समय-समय पर 2 रन-पास-पास होना चाहिए और 2 अच्छी तरह से नक्शे के बीच कुछ कोड लिखना समाप्त करना होगा ...
मूल

1
@Basiclife मैं उसी समस्या में भाग गया :) मैं थोड़ी देर के लिए अलग-अलग संस्थाओं को अद्यतन करने के बारे में अपने विचारों को लिखने के लिए अर्थ रखता हूं और आपने मुझे सिर्फ ऐसा करने के लिए प्रोत्साहित किया है: britishdeveloper.co.uk/2011/03/ ...
ब्रिटिशडायलर

जवाबों:


56

ये लेख रुचि के हो सकते हैं ... श्रृंखला वास्तव में POCO दृष्टिकोण के फायदे और नुकसान में मिलती है।

http://blogs.msdn.com/b/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx

http://blogs.msdn.com/b/adonet/archive/2009/05/28/poco-in-the-entity-framework-part-2-complex-types-deferred-loading-and-explicit-loading। aspx

http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with-poco.aspx

इन लेखों में लेखक भविष्य के उन लेखों का उल्लेख करता है जो रिपोजिटरी और वर्क पैटर्न की इकाई को लागू करने में सर्वोत्तम प्रथाओं का वर्णन करते हैं, लेकिन मैं उन्हें नहीं ढूंढ सकता। ये लेख अच्छी तरह से लिखे गए हैं और मैं इस लेखक से अधिक पढ़ना चाहता हूं।


2
जैसा कि किसी ने डिजाइनर का उपयोग करके एंटिटी फ्रेमवर्क के साथ पहले से ही सहज है, यह POCO के लिए एक महान परिचय था।
नाथनचेरे

1
यदि आपकी यूनिट ऑफ़ वर्क की तलाश है तो यह ब्लॉगs.msdn.com/b/adonet/archive/2009/06/16/…
माइक

11

मैं इस पर आया हूँ: http://blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-code-only-for-the-entity-framework.aspx

जो आपको पहले कोड के लिए चरण-दर-चरण देता है। इसे EF4 के लिए CTP 3 की आवश्यकता है (उस लेख से डाउनलोड करें)।

यह उस चीज़ के बहुत करीब है जो मैं बाद में था (हालांकि आदर्श रूप से एक समाधान जो एक CTP पर भरोसा नहीं करता है वह बेहतर होगा)


NB: यह CTP शुरू में VS2010 बीटा के लिए था, लेकिन VS2010 RTM को भी सपोर्ट करता है।
बेसिक

7

मैं अनुशंसा करता हूं कि आप आधे घंटे का समय लें और अपने वर्तमान VS में एक स्थिर EF1.0 मॉडल बनाएं। यह आपको EF 4.0 के रूपकों और अवधारणाओं को समझने की दिशा में एक लंबा रास्ता तय करेगा। बस एक साधारण ग्राहक, उत्पाद और आदेश db कोड़ा ... मैं अपना खुद का करने और नॉर्थविंड का उपयोग नहीं करने की सलाह देता हूं।


4

यह एक महान प्रश्न है, लेकिन एंटिटी फ्रेमवर्क परिपक्व होने के लिए अद्यतित रहना कठिन है। संभवत: शुरू करने के लिए सबसे अच्छी जगह जो भविष्य में अद्यतित रहेगी, माइक्रोसॉफ्ट का ईएफ पृष्ठ है

Googling (कोड फर्स्ट पर केंद्रित) करते समय कुछ अन्य लिंक मुझे मददगार लगे:


3

आप लर्मन की पुस्तक या कुछ और सरल ले सकते हैं जैसे "प्रो लाइनक ऑब्जेक्ट-रिलेशनल मैपिंग"। सभी अवधारणाएँ अभी भी POCO के साथ समान हैं, सिवाय इसके कि अब आप कोड पीढ़ी और मानचित्र को सीधे अपने मॉडल में edmx csdl में अक्षम कर दें (या अपना खुद का POCO जनरेटर बनाएं)। सभी मानचित्रण सिद्धांत समान हैं। किसी भी तरह से रन टाइम में आप प्रॉक्सी के साथ काम कर रहे हैं जो आपके POCO ऑब्जेक्ट से लिया गया है, इसलिए आपको इंटरसेप्शन सपोर्ट (अपने POCO गुणों का वर्चुअलाइजेशन) के बारे में चिंता करनी चाहिए।


3

उनकी परियोजना संरचना ठीक उसी तरह दिखती है जैसे एक पुराने एनहाइनेट आधारित परियोजना पर मैं काम कर रहा था। सभी WCF जैज के लिए रहो, जो मैं खुद को तरोताजा करने के लिए उत्सुक हूं। ठोस लिंक।
मेरिट

2

यहाँ एंटिटी फ्रेमवर्क के लिए POCO टेम्प्लेट पर एक वॉकथ्रू है जो बहुत अच्छा लग रहा था। आप ADO.NET टीम ब्लॉग की जाँच भी कर सकते हैं । यदि आप शुरुआत (EF v1.0) को अपने EF ज्ञान के लिए आधार के रूप में शुरू करना चाहते हैं, तो मुझे जूलिया लर्मन की प्रोग्रामिंग एंटिटी फ्रेमवर्क बुक बहुत अच्छी लगी ।


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

2
जूलिया लर्मन की पुस्तक के बारे में यह उल्लेख के लायक है कि वह EF4 को कवर करने वाले दूसरे संस्करण पर काम कर रही है: learnentityframework.com/LearnEntityFramework/book/… । मुझे याद है कि मैंने कहीं पढ़ा है कि योजनाबद्ध प्रकाशन की तारीख इस साल मई में है, लेकिन मुझे अब कोई स्रोत नहीं मिल रहा है। : इसके अलावा मैं सिर्फ इस साइट पाया nakedobjects.net/home/index2.shtml
Slauma

सलुमा, आपके द्वारा प्रदान किया गया लिंक बिल्कुल वैसा ही दिखता है, जिसकी मुझे आवश्यकता है - सिवाय इसके कि वह किसी 3 पार्टी "नेकेड ओब्सेस" लाइब्रेरी का उपयोग कर रहा है, जो किसी भी तरह से जटिलता को बाधित कर रही है - एक मिनट के लिए, मुझे लगा कि आप इसे क्रैक करेंगे
बेसिक

2

एक उत्तर पर टिप्पणी करने के लिए दोहराव नहीं है, लेकिन यहां जिन्किनज़ उत्तर का अनुसरण किया गया है:

इकाई फ्रेमवर्क 4.0 के साथ कार्य पैटर्न के रिपोजिटरी और यूनिट का उपयोग करना:

http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx


1

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


1

यदि आप डिस्कनेक्ट किए गए cenarios का उपयोग करने जा रहे हैं, तो मैं आपको जूली लर्मन पुस्तक: "प्रोग्रामिंग DbContext", विशेष अध्याय 4 में पढ़ने की सलाह देता हूं।

मैंने ब्लॉग्स आदि में बहुत सारे उदाहरण पाए, लेकिन उनमें से लगभग सभी जुड़े cenarios के बारे में हैं।

मैं भी शुरू कर रहा हूँ। और इन किताबों ने मेरी बहुत मदद की। वैसे, मैंने उसकी तीन किताबें खरीदीं।


0

मैं उसी उत्तरों की तलाश में था और http://www.dotnetcurry.com/ShowArticle.aspx?ID=599 पर आया था

लिंक के अंत में, कुछ लिंक हैं जो आपको एंटिटी फ्रेमवर्क 4 के साथ मिलेंगे।

उम्मीद है की यह मदद करेगा


0

वाह, बहुत सारे जवाब। ऐसे उदाहरण के बारे में जिसमें T4 टेम्प्लेट का एक संकलित संस्करण शामिल है जो POCO + इंटरफेस + रिपोजिटरी को पूरी तरह से उत्पन्न करता है?

https://entityinterfacegenerator.codeplex.com


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

तुम सही हो। ज्यादातर, लोगों को अलग इंटरफेस की आवश्यकता नहीं होगी। लेकिन यह उन लोगों की मदद करता है जो परिपत्र संदर्भों को हल करना चाहते हैं और तीसरे पक्ष के साथ वास्तविक वर्गों को नहीं, बल्कि इंटरफेस को साझा करना चाहते हैं। यदि आपकी कंपनी को तृतीय पक्ष एकीकरण के साथ एक ऑडिट पास करने की आवश्यकता है, जो साझा करने में कोई विस्तार कार्यान्वयन की आवश्यकता नहीं है, तो इससे बहुत मदद मिलेगी।
Believe2014
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.