2016-02-25 7 views
5

मेरे पास एक वर्ग है जिसमें कुछ गुण हैं। कुछ वास्तुशिल्प कारणों से, मेरे पास मेरी कक्षा में एक और ओबजेट का उदाहरण है।आंतरिक ऑब्जेक्ट गुणों के लिए ईएफ कोर धाराप्रवाह मैपिंग

builder.ToTable(MyEntity.CONST_TABLE_NAME); 
builder.HasKey(m => m.Id); 
builder.Property(m => m.Column1).IsRequired(); 
builder.Property(m => m.SubEntity.Column2).IsRequired(); 

मैं अपने मुख्य इकाई में अपने सभी subEntity गुण एकीकृत नहीं कर सकते हैं (मेरे subEntity अपने स्वयं के खुफिया है):

सरल उदाहरण

public class MyEntity { 
    public MySubEntity SubEntity {get; set;} 
} 

इस के लिए, मैं धाराप्रवाह मानचित्रण की तरह बना सकते हैं। मैं बस अपनी सबेंटिटी गुणों को मैप करना चाहता हूं, जो एक अलग तालिका में, मेरी एंटीटी टेबल पर संग्रहीत नहीं है।

अंतिम पंक्ति एक अपवाद फेंक:

The expression 'm => m.SubEntity.Column2' is not a valid property expression. The expression should represent a property access: 't => t.MyProperty'. 

मैं ऐसी मैपिंग कैसे प्रदर्शन कर सकते हैं?

उत्तर

3

ईएफ कोर अब इस प्रकार के मैपिंग का समर्थन नहीं करता है। यह (मेरे GitHub समस्या का हल नहीं: https://github.com/aspnet/Home/issues/1330) एफई कोर 1.0 आरटीएम में समर्थित नहीं किया जाएगा

मैं अपने GitHub अंक में बताया गया है, मैं बाहर 2 समाधान लगा:

1) अपने मॉडल से व्युत्पन्न वर्ग बनाएँ, विशेष रूप से ईएफ के लिए डिज़ाइन किया गया है, और सभी गुणों को सरल के रूप में बेनकाब करता है। डीबी से डालने/अपडेट करने और पुनर्प्राप्त करने पर इसे और मैपिंग की आवश्यकता होगी। हम इस विकल्प को

2) प्रॉक्सी गुणों का चयन नहीं करते हैं। मेरे उदाहरण में, यह इस प्रकार है:

public class MyEntity { 
    private MySubEntity SubEntity {get; set;} 
    public string SubEntityValue 
    { 
    get 
    { 
     return SubEntity.Value; 
    } 
    set 
    { 
     SubEntity.Value = value; 
    } 
} 

यह सबसे अच्छा समाधान प्रतीत होता है (हम इसे चुनते हैं)।

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