इकाई फ्रेमवर्क प्रदाता का Oracle कार्यान्वयन बहुत खराब है लेकिन इसे कैसे काम करना है इसके कुछ तरीके हैं।
-
सरल लेकिन कष्टप्रद - NULL या स्वयं के डेटाबेस प्रारंभकर्ता कार्यान्वयन का उपयोग करना:
Database.SetInitializer<DatabaseContext>(null);
या
class DatabaseInitializer : IDatabaseInitializer<DatabaseContext>
{
public void InitializeDatabase(DatabaseContext context)
{
// your implementation
}
}
Database.SetInitializer(new DatabaseInitializer());
अपने डेटाबेस तक पहली पहुंच से पहले आरंभिक सेट करें।
- यदि आप माइग्रेशन का उपयोग करना चाहते हैं तो अपने विचार बनाएं और फिर परिवर्तनों को अनदेखा करके माइग्रेशन जोड़ें, उदाहरण के लिए पैकेज कंसोल
add-migration initial -ignorechanges
का उपयोग करना . यह ईएफ को डीबी स्कीमा और मॉडल के बीच विसंगतियों को अनदेखा कर देगा (क्योंकि यह केवलALL_TABLES
से तालिकाओं की जांच करता है , विचार नहीं) इसलिए यह तालिका बनाने का प्रयास नहीं करेगा। Oracle EF कार्यान्वयन में एक बग है कि यदि प्रारंभिक माइग्रेशन खाली है तो यह ड्रॉप हो जाता है और__MigrationHistory
को फिर से बनाता है तालिका इसलिए या तो आपके प्रारंभिक माइग्रेशन में दृश्य माइग्रेशन जोड़ने से पहले कम से कम एक तालिका होनी चाहिए या आपको बाद में एक तालिका जोड़ने की आवश्यकता होगी।