2008-12-09 4 views
11

मेरे पास एक इकाई वर्ग है जिसमें डेटाटाइप इंट के अंतर्निहित डीबी कॉलम के साथ एक संपत्ति है, हालांकि वास्तविकता में मैं चाहता हूं कि यह संपत्ति एक एनम हो। क्या यह निर्दिष्ट करने का कोई तरीका है कि यह संपत्ति एक एनम लौटाती है?मैं एंटिटी फ्रेमवर्क में एनम के साथ एक इंट प्रॉपर्टी को कैसे बदलूं?

उत्तर

10

अप्रत्यक्ष रूप से, so की तरह।

व्यक्तिगत रूप से, मैं भंडारण पूर्णांक सार्वजनिक (उदाहरण के लिए DbFoo, जहां enum संपत्ति Foo है के रूप में) छोड़ - इस तरह से मैं अभी भी डीबी पर निष्पादन के लिए स्तंभ के खिलाफ lambdas लिख सकते हैं, उदाहरण के लिए:

where row.DbFoo == SomeConstant 

यदि आप संग्रहण मान का पर्दाफाश नहीं करते हैं, तो आप इसे स्पष्ट रूप से नहीं कर सकते हैं। आप समान रूप से यह आंतरिक छोड़ सकता और फ़िल्टर करने के लिए संदर्भ में कुछ तरीकों है ... यहाँ एक मैंने पहले आज लिखा है:

public IOrderedQueryable<User> Administrators 
{ 
    get { return Users.Where(x => x.DbUserType == User.UserTypeAdmin) 
      .OrderBy(x => x.Name); 
} 

जहां मेरी आंतरिक निरंतर है। इस मामले में, मैं एक भेदभाव वाले उप-वर्ग का उपयोग नहीं कर सका, क्योंकि यह एडीओ.NET डेटा सेवाओं में हस्तक्षेप कर रहा था।

+0

मैं एक ही विधि का उपयोग करता हूं, और यह बहुत अच्छा काम करता है। तब तक ईएफएफ डिफ़ॉल्ट रूप से enums का समर्थन करता है ... – hminaya

संबंधित मुद्दे