जेनिक्स का उपयोग करके इकाई फ्रेमवर्क में एम्स को प्रोसेस करने के लिए वर्कअराउंड बनाने की कोशिश कर रहा है, लेकिन ईएफ सामान्य गुणों की देखभाल नहीं करता है। उदाहरण के लिए:इकाई फ्रेमवर्क - आम तौर पर प्रचलित Enums?
public enum MyEnum
{
One, Two, Three
}
public class SomePOCOWithEnum
{
// I want this to persist as an int, but EF doesn't like generics.
public EnumWrapper<MyEnum> MyEnumProperty { get; set; }
}
इरादा डेटाबेस में एक आईएनटी के रूप में जारी रखना है। क्या धाराप्रवाह या शायद कुछ अन्य तंत्र विधि का उपयोग करने का कोई विशेष तरीका है जिससे मैं सामान्य वर्ग कह सकता हूं और क्या यह ईएफ के भीतर डेटाबेस में एक आईएनटी के रूप में जारी है?
इरादा बातें सामान्य रखने के लिए के रूप में मैं लगभग दो दर्जन enums कि बने जरूरत है, और मैं नहीं बल्कि उनमें से प्रत्येक के लिए अलग-अलग आवरण वर्गों लिख नहीं चाहते हैं। enum करने के लिए अंतर्निहित रूपांतरण, लेकिन दृढ़ता किसी पूर्णांक के रूप में:
public class EnumWrapper<T> where T : struct
{
private T enumValue;
public int Value
{
get { return Convert.ToInt32(enumValue); }
set { enumValue = (T)Enum.Parse(typeof(T), value.ToString()); }
}
public T EnumValue
{
get { return enumValue; }
set { enumValue = value; }
}
public static implicit operator T(EnumWrapper<T> wt)
{
return wt.EnumValue;
}
public static implicit operator EnumWrapper<T>(T t)
{
return new EnumWrapper<T>() { EnumValue = t };
}
public override string ToString()
{
return enumValue.ToString();
}
}
क्यों आप enums लपेटकर कर रहे हैं? यह बहुत बोझिल लगता है। – phoog
क्योंकि ईएफ enums जारी नहीं है। मैं ऐसा करने के किसी भी बेहतर तरीके से खुला हूं। –
Enum समर्थित एफई 5 में जोड़ा गया है, ताकि आप [यह बाहर की जाँच] (http://msdn.microsoft.com/en-us/data/hh859576.aspx) – sinelaw