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