फरवरी 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
है अतिप्रवाह अपवादों को रोकने के लिए।
आशा है कि यह किसी की मदद करेगा।