दो सबसे महत्वपूर्ण सुझाव:
[१] - सुनिश्चित करें कि आप एक नया पाड़ कमांड चलाने से पहले अपनी परियोजना पूरी तरह से बनाते हैं ।
अन्यथा...
- आप कोड की एक पंक्ति लिखना शुरू कर देंगे।
- आपको महसूस होगा कि आपके मॉडल से एक आवश्यक DB कॉलम गायब है।
- आप इसे मचान बनाने की कोशिश करेंगे।
- बीस मिनट बाद आपको एहसास होगा कि आपकी बिल्ड (और पाड़ कमांड) विफल हो रही है क्योंकि आपके पास कोड की आधी लिखित लाइन है। ऊप्स!
[२] - स्रोत नियंत्रण में जाँच करें या एक प्रतिलिपि बनाएँ:
- आपको आसानी से सत्यापित करने की अनुमति देता है कि क्या बदल गया है।
- यदि आवश्यक हो तो रोलबैक की अनुमति देता है।
अशुभ होने या गलती होने पर आपको कुछ बहुत कष्टप्रद 'चिकन और अंडे' की समस्या हो सकती है।
दूसरी समस्याएं:
यदि आपके पास कई DLL हैं, तो सुनिश्चित करें कि आप गलत प्रोजेक्ट में उत्पन्न नहीं कर रहे हैं । एक 'बिल्ड फ़ेल' संदेश कई कारणों से हो सकता है, लेकिन अगर आप उस EFCore को प्रोजेक्ट में स्थापित नहीं कर रहे हैं जो आपके द्वारा मचान में है, तो सबसे कठिन होगा।
पैकेज मैनेजर कंसोल में एक Default project
ड्रॉपडाउन होता है और संभवतया आपकी नई फाइलें समाप्त हो जाती हैं यदि आप एक अपेक्षित बदलाव को याद कर रहे हैं।
ड्रॉपडाउन सेट करने के लिए याद रखने से बेहतर उपाय यह है कि -Project
स्विच को अपने मचान कमांड में जोड़ा जाए ।
यह पूरी कमांड है जिसका मैं उपयोग करता हूं:
ईएफ कोर 2 के लिए
पाड़ - DbContext -Connection "Server = (स्थानीय); डेटाबेस = DefenderRRCart; एकीकृत सुरक्षा = सही; Trusted_Connection = True;" -प्रोवाइड Microsoft.EntityFrameworkCore.SqlServer -OutputDir RRStoreContext.Models -context RRStoreContext -Project RR.DataAccess -force
ईएफ कोर 3 के लिए
dotnet ef dbcontext scaffold "Server = tcp: XXXXX.database.windows.net, 1433; आरंभिक कैटलॉग = DATABASE_NAME; Persist Security Info = False; उपयोगकर्ता आईडी = USERNAME; पासवर्ड; PASSWORD; MultipleActiveResultSets = False; Encrypt = True; TrustServerCertication प्रमाणन = ; कनेक्शन टाइमआउट = 30; " Microsoft.EntityFrameworkCore.SqlServer -o DB.Models --context-dir DB.Contexts --context RRDBContext --project RR.EF.csproj: प्रवर्तन-डेटाबेस-नाम
नोट: -force फाइलों को अधिलेखित कर देगा, लेकिन उन लोगों को नहीं हटाएगा जो किसी भी अधिक मौजूद नहीं हैं। यदि आप अपने DB से तालिकाओं को हटाते हैं, तो आपको पुरानी इकाई फ़ाइलों को स्वयं हटा देना चाहिए (बस तारीख तक एक्सप्लोरर में क्रमबद्ध करें और पुराने को हटा दें)।
पूर्ण मचान संदर्भ:
ईएफ कोर 2:
https://docs.efproject.net/en/latest/misc विविध/cli/powershell.html#scaffold-dbcontext (यह
ईएफ कोर 3:
https://docs.microsoft.com/en-us/ef/core/misc विविध/cli/dotnet