How to run Entity Framework Core commands via .NET CLI
.NET CLI के द्वारा Entity Framework Core कमांड को कैसे रन कर सकते हैं?
दोस्तों! क्या आप .NET CLI का उपयोग करके Entity Framework Core कमांड को कुशलता से चलाने का तरीका खोज रहे हैं? तो यह ब्लॉग पोस्ट आपके लिए ही है!
.NET CLI, Entity Framework Core के साथ काम करने के लिए एक शक्तिशाली और बहुमुखी उपकरण है, जो आपको डेटाबेस माइग्रेशन, स्कीमा अपडेट और बहुत कुछ सीधे कमांड लाइन से प्रबंधित करने की अनुमति देता है। इस परिचय में, हम समझेंगे कि कैसे आप अपने Development वर्कफ़्लो को सुव्यवस्थित करने के लिए इन कमांडों का प्रभावी ढंग से लाभ उठा सकते हैं। चाहे आप एक अनुभवी डेवलपर हों या .NET Core की दुनिया में नए हों, यह पोस्ट आपको आरंभ करने के लिए आवश्यक कदमों और युक्तियों को प्रदान करेगी।
Entity Framework Core (EF Core) कमांड को .NET CLI के माध्यम से चलाने के लिए, आपको dotnet ef कमांड का उपयोग करना होगा. ये कमांड डेटाबेस माइग्रेशन (migrations) करने, डेटाबेस को अपडेट करने, माइग्रेशन स्क्रिप्ट उत्पन्न करने और बहुत कुछ करने के लिए आवश्यक हैं.
सर्वप्रथम, EF Core कमांड को चलाने के लिए, आपको अपने प्रोजेक्ट में Microsoft.EntityFrameworkCore.Design NuGet पैकेज को इंस्टॉल करना होगा.
यह पैकेज आवश्यक उपकरण प्रदान करता है जो dotnet ef कमांड को काम करने की अनुमति देता है.
पहला कदम: Microsoft.EntityFrameworkCore.Design पैकेज इनस्टॉल करें
अपने प्रोजेक्ट फ़ोल्डर में नेविगेट करें (वह फ़ोल्डर जहाँ आपकी .csproj फ़ाइल है) और निम्नलिखित कमांड चलाएं:
dotnet add package Microsoft.EntityFrameworkCore.Design
👉 यह पैकेज विकास समय के दौरान ही उपयोग किया जाता है, इसलिए आपको इसे रनटाइम पर अपने एप्लिकेशन में शामिल करने की आवश्यकता नहीं है.
दूसरा कदम: EF Core कमांड चलाएं
एक बार जब Microsoft.EntityFrameworkCore.Design पैकेज इनस्टॉल हो जाता है, तो आप अपने EF Core कमांड को चला सकते हैं. यहाँ कुछ सबसे अधिक उपयोग किए जाने वाले EF Core कमांड दिए गए हैं:
-
माइग्रेशन जोड़ें (Add Migration):
एक नया डेटाबेस माइग्रेशन बनाने के लिए इस कमांड का उपयोग करें. यह आपके मॉडल परिवर्तनों के आधार पर डेटाबेस स्कीमा में आवश्यक परिवर्तनों को कैप्चर करता है.
dotnet ef migrations add [MigrationName]
- [MigrationName]: यह आपकी माइग्रेशन के लिए एक वर्णनात्मक नाम है (उदाहरण के लिए, InitialCreate, AddProductsTable, UpdateUserSchema).
उदाहरण:
dotnet ef migrations add InitialCreate
यह आपके प्रोजेक्ट के Migrations फ़ोल्डर में माइग्रेशन फ़ाइलें बनाएगा.
-
डेटाबेस अपडेट करें (Update Database):
अपने डेटाबेस स्कीमा को नवीनतम माइग्रेशन के साथ अपडेट करने के लिए इस कमांड का उपयोग करें. यह डेटाबेस में माइग्रेशन फ़ाइलों में परिभाषित परिवर्तनों को लागू करता है.
dotnet ef database update
यह कमांड आपके डेटाबेस को आपकी DbContext के नवीनतम ज्ञात स्थिति में अपडेट करेगा.
विशिष्ट माइग्रेशन पर अपडेट करें:
dotnet ef database update [MigrationName]
या, सभी माइग्रेशन को अनडू (undo) करने के लिए और डेटाबेस को खाली करने के लिए:
dotnet ef database update 0
-
माइग्रेशन हटाएं (Remove Migration):
अंतिम माइग्रेशन को हटाने के लिए इस कमांड का उपयोग करें, यदि इसे डेटाबेस पर लागू नहीं किया गया है.
dotnet ef migrations remove
यदि माइग्रेशन को डेटाबेस पर लागू किया गया है, तो आपको इसे हटाने से पहले
dotnet ef database update
का उपयोग करके डेटाबेस को उस माइग्रेशन से पहले की स्थिति में लाना होगा.
-
SQL स्क्रिप्ट उत्पन्न करें (Generate SQL Script):
माइग्रेशन से एक SQL स्क्रिप्ट उत्पन्न करने के लिए इस कमांड का उपयोग करें. यह तब उपयोगी होता है जब आप सीधे SQL सर्वर पर माइग्रेशन लागू नहीं कर सकते हैं और मैन्युअल रूप से स्क्रिप्ट चलाना चाहते हैं.
dotnet ef migrations script
यह नवीनतम माइग्रेशन तक सभी लागू माइग्रेशन के लिए एक संयुक्त स्क्रिप्ट उत्पन्न करेगा.
विशिष्ट माइग्रेशन से विशिष्ट माइग्रेशन तक स्क्रिप्ट:
dotnet ef migrations script [FromMigration] [ToMigration]
- [FromMigration]: वह माइग्रेशन जहाँ से स्क्रिप्ट शुरू होनी चाहिए.
- [ToMigration]: वह माइग्रेशन जहाँ तक स्क्रिप्ट जानी चाहिए.
उदाहरण:
dotnet ef migrations script InitialCreate AddProductsTable
-
DbContext को स्काफ़ोल्ड करें (Scaffold DbContext):
मौजूदा डेटाबेस से DbContext और एंटिटी कक्षाओं को रिवर्स-इंजीनियर (reverse-engineer) करने के लिए इस कमांड का उपयोग करें.
dotnet ef dbcontext scaffold "[ConnectionString]" Microsoft.EntityFrameworkCore.SqlServer -o Models
- "[ConnectionString]": आपके डेटाबेस का कनेक्शन स्ट्रिंग. उद्धरण चिह्नों का उपयोग करना सुनिश्चित करें.
- EntityFrameworkCore.SqlServer: आपके द्वारा उपयोग किए जा रहे डेटाबेस प्रदाता का नाम (जैसे Microsoft.EntityFrameworkCore.Sqlite, Microsoft.EntityFrameworkCore.PostgreSQL आदि). आपको इस प्रदाता पैकेज को अपने प्रोजेक्ट में इंस्टॉल करना होगा.
- -o Models: उत्पन्न कक्षाओं को रखने के लिए आउटपुट निर्देशिका निर्दिष्ट करता है (वैकल्पिक).
-
DbContext जानकारी दिखाएं:
अपने DbContext के बारे में जानकारी प्रदर्शित करने के लिए इस कमांड का उपयोग करें, जैसे कि इसका प्रकार और कॉन्फ़िगरेशन.
dotnet ef dbcontext info
EF Core कमांड के साथ अतिरिक्त विकल्प
कई EF Core कमांड के लिए अतिरिक्त विकल्प उपलब्ध हैं. आप प्रत्येक कमांड के लिए --help
फ़्लैग का उपयोग करके इन विकल्पों को देख सकते हैं:
dotnet ef migrations add --help
dotnet ef database update --help
कुछ सामान्य विकल्प जो आप उपयोग कर सकते हैं:
- --project [PROJECT]: यदि आपके सोल्यूशन में कई प्रोजेक्ट हैं तो उस प्रोजेक्ट को निर्दिष्ट करें जिसमें आपकी DbContext है.
- --startup-project [PROJECT]: यदि आपका DbContext प्रोजेक्ट एक अलग स्टार्टअप प्रोजेक्ट (जैसे एक NET Core वेब ऐप) पर निर्भर करता है तो स्टार्टअप प्रोजेक्ट को निर्दिष्ट करें.
- --context [DbContextName]: यदि आपके प्रोजेक्ट में कई DbContext कक्षाएं हैं तो उस DbContext का नाम निर्दिष्ट करें जिसका आप उपयोग करना चाहते हैं.
- --output-dir [DIRECTORY]: उत्पन्न फ़ाइलों के लिए आउटपुट निर्देशिका निर्दिष्ट करें (केवल कुछ कमांड के लिए लागू).
उदाहरण:
यदि आपके पास एक अलग क्लास लाइब्रेरी प्रोजेक्ट (DataLayer) में आपका DbContext है और आपका ASP.NET Core वेब ऐप प्रोजेक्ट (MyWebApp) स्टार्टअप प्रोजेक्ट है:
dotnet ef migrations add NewFeature --project DataLayer --startup-project MyWebApp
यह सुनिश्चित करेगा कि EF Core टूल सही प्रोजेक्ट संदर्भों का उपयोग करें.
टिप्पणियाँ
एक टिप्पणी भेजें