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

एंटिटी फ्रेमवर्क के साथ अहस्ताक्षरित int/long प्रकार का उपयोग कैसे करें?

फरवरी 2021 को अपडेट करें

स्पष्ट रूप से ईएफ कोर अब ulong का समर्थन करता है -- नीचे देखें @JimbobTheSailor का जवाब।

पुराने निकाय फ्रेमवर्क संस्करण:

पता चलता है कि एंटिटी फ्रेमवर्क unsigned . का समर्थन नहीं करता है डेटा के प्रकार। uint . के लिए कॉलम, कोई केवल एक हस्ताक्षरित डेटा प्रकार में मान को एक बड़ी रेंज (यानी, एक long के साथ संग्रहीत कर सकता है) ) ulongके बारे में क्या? कॉलम? सामान्य समाधान मेरे लिए काम नहीं कर सका क्योंकि कोई भी EF- समर्थित हस्ताक्षरित डेटा प्रकार नहीं है जो ulong धारण कर सके अतिप्रवाह के बिना।

थोड़ा सोचने के बाद, मैंने इस समस्या का एक सरल समाधान निकाला:बस डेटा को समर्थित long में संग्रहीत करें टाइप करें और इसे ulong . पर डालें जब पहुँचा। आप सोच रहे होंगे:"लेकिन रुकिए, उलॉन्ग का अधिकतम मान> लॉन्ग का अधिकतम मान!" आप अभी भी एक उलंग के बाइट्स को लंबे समय तक स्टोर कर सकते हैं और फिर जरूरत पड़ने पर इसे वापस उलंग में डाल सकते हैं, क्योंकि दोनों में 8 बाइट्स होते हैं। यह आपको EF के माध्यम से एक डेटाबेस में एक उलंग चर को सहेजने की अनुमति देगा।

// Avoid modifying the following directly.
// Used as a database column only.
public long __MyVariable { get; set; }

// Access/modify this variable instead.
// Tell EF not to map this field to a Db table
[NotMapped]
public ulong MyVariable
{
    get
    {
        unchecked
        {
            return (ulong)__MyVariable;
        }
    }

    set
    {
        unchecked
        {
            __MyVariable = (long)value;
        }
    }
}

कास्टिंग unchecked है अतिप्रवाह अपवादों को रोकने के लिए।

आशा है कि यह किसी की मदद करेगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रमाणीकरण प्लगइन 'caching_sha2_password' लोड नहीं किया जा सकता

  2. MySQL में SYSDATE() बनाम Now():क्या अंतर है?

  3. MySQL में विदेशी कुंजी की मूल बातें?

  4. MySQL तालिका से अद्वितीय बाधा छोड़ना

  5. बिना शर्त के mysql जॉइन का उपयोग कैसे करें?