2010-09-06 20 views
9

मान लीजिए मैं निम्नलिखित 2 एसक्यूएल टेबल:लुकअप टेबल को enum में कैसे मैप करें?

फू

Column  DataType 
--------------------------- 
Title   NVARCHAR(20) 
Body   NVARCHAR(MAX) 
FooTypeId  TINYINT 

FooType

Column  DataType 
-------------------------- 
FooTypeId  TINYINT 
Name   NVARCHAR(10) 

अब, im इकाई की रूपरेखा 4.0 का उपयोग कर एक कस्टम डेटा संदर्भ और POCO कार्यान्वयन के साथ ।

मैं इसे डिजाइनर और मेरे पॉको के मानचित्र पर कैसे मैप करूं?

क्या मुझे "FooTypeId" नामक एक पीओसीओ संपत्ति (प्रकार बाइट मैं मानता हूं) बनाना है, तो मैं अपने enum प्रकार की किसी अन्य संपत्ति का पर्दाफाश करता हूं?

आईई।

public class Foo 
{ 
    public byte FooTypeId { get; set; } // for ORM - do i need this?? 
    public FooType FooType // for most querying operations 
    { 
     get 
     { 
      return (FooType)this.FooTypeId; 
     } 
     set 
     { 
      this.FooTypeId = (int)value; 
     } 
    } 
} 

public enum FooType 
{ 
    Blah = 1, 
    Foo = 2, 
    Bar = 3 
} 

फिलहाल, मैं भी FooType तालिका मेरी डिजाइनर पर, की जरूरत नहीं है के रूप में मैं मैं कोशिश करते हैं और "व्यक्त" कर सकते हैं लगा फू संपत्ति पर वास्तविक FooTypeId से एक गणन के रूप में इस। या क्या मुझे मैपर पर "नेविगेशन प्रॉपर्टी" बनाना है, फिर मेरे पॉको में परिभाषित करें?

मैंने कुछ साल पहले (ईएफ 1) से धागे पढ़े हैं, "ईम्स ईएफ में समर्थित नहीं हैं", क्या यह अभी भी ईएफ 4 के मामले में है? यदि यह है, तो क्या मैं सही कर रहा हूं?

मैं यहां खो गया हूं, कुछ मार्गदर्शन की सराहना की जाएगी!

+0

मैंने ऐसा करने के लिए टी 4 का उपयोग किया है। http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx –

उत्तर

7

वर्तमान में, ईएफ 4 मूल रूप से enums का समर्थन नहीं करता है।

मुझे लगता है कि बहुत अच्छी तरह से काम करता है AlexJ द्वारा एक महान वैकल्पिक हल देखा है मैं भी सुना है कि यह देशी enum समर्थन EF4 के अगले संस्करण में आ रहा है (यह बहुत कोड भारी है, हालांकि), http://blogs.msdn.com/b/alexj/archive/2009/06/05/tip-23-how-to-fake-enums-in-ef-4.aspx

, लेकिन कौन जानता है कि यह कब जारी किया जाएगा।

+0

वाह, यह बहुत कोड-भारी है, लेकिन फिर भी एक समाधान है। धन्यवाद। – RPM1984

+0

यह .NET 4.5 में होगा, [data.uservoice] देखें (http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/1015335-support-for -enums) – abatishchev

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