Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

कोड पहले माइग्रेशन में कॉलम के लिए EF6 Oracle डिफ़ॉल्ट मान

मुझे Oracle और EF6 के साथ काम करने में एक ही समस्या आई। ऐसा प्रतीत होता है कि Oracle प्रदाता इसका समर्थन नहीं करता है। हालाँकि, यदि आपको पहले से कोई समाधान नहीं मिला है, तो इसके लिए वैकल्पिक समाधान मौजूद है।

आपको सबसे पहले अपने मॉडल (या फ़्लुएंट एपीआई, जहां भी आप इसे संभाल रहे हैं) में क्वांटिटी चेंजेड प्रॉपर्टी को शून्य के रूप में सेट करने की आवश्यकता है। फिर आप ऐड-माइग्रेशन कमांड चला सकते हैं जो 'अप' मेथड में 'AddColumn' मेथड के साथ एक माइग्रेशन फाइल जेनरेट करेगा। उसके बाद, सभी मानों को आवश्यक डिफ़ॉल्ट मान पर अपडेट करने के लिए एक स्पष्ट SQL कमांड जोड़ें। यदि आपको कॉलम को आगे बढ़ने के लिए NULL होने की आवश्यकता है, तो आपको कॉलम को संशोधित करने और इसे NOT NULL पर सेट करने के लिए एक और SQL कमांड की आवश्यकता होगी।

    public override void Up()
    {
        AddColumn("MTA.PLAN_SHEETS", "QUANTITY_CHANGED", c => c.Decimal(precision: 3, scale: 0));
        Sql("UPDATE MTA.PLAN_SHEETS SET QUANTITY_CHANGED = 1");
        Sql("ALTER TABLE MTA.PLAN_SHEETS MODIFY QUANTITY_CHANGED NOT NULL");
    }

आशा है कि ये आपकी मदद करेगा। यदि आवश्यक हो तो मेरे प्रश्न का संदर्भ लें:मैं EF6 माइग्रेशन का उपयोग करके एक नए कॉलम के लिए डिफ़ॉल्ट मान कैसे सेट करूं?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle IN ऑपरेटर में JPA और 1000 ID का उपयोग

  2. ओरेकल फॉर लूप सेलेक्ट स्टेटमेंट उदाहरण

  3. थोक संग्रह के बिना वस्तुओं के संग्रह के साथ Oracle वस्तु का चयन

  4. Oracle .NET त्रुटि - गलत संख्या या तर्कों का प्रकार

  5. नियमित, दोहराव, एक ओरेकल और एक स्मार्ट अनुबंध के बीच बातचीत