7

मुझे पता है कि मैं जटिल प्रकारों को घोंसले के बजाय सब कुछ एक इकाई में धक्का देकर इसे हल कर सकता हूं (क्योंकि वे केवल 1-1 मैपिंग हैं), लेकिन मुझे यह तरीका पसंद है जेनरेट ओएम में गुण।ईएफ 4.2, कोडफर्स्ट - एक पूर्ण प्रकार के भीतर नेविगेशन संपत्ति

मेरे पास एक ग्राहक इकाई है जिसमें एक पूर्ण प्रकार "CrmData" है। CrmData इकाई का एक जटिल प्रकार का पता है।

public class Customer { 
    [Required] 
    public CrmSpecificData CrmData { get; set; } 
} 
[ComplexType] 
public class CrmSpecificData { 
    [MaxLength(40)] 
    public string FirstName { get; set; } 

    [MaxLength(80)] 
    public string LastName { get; set; } 

    public Address Address { get; set; } 
} 
[ComplexType] 
public class Address { 
    [MaxLength(150)] 
    public string Address1 { get; set; } 

    [MaxLength(150)] 
    public string Address2 { get; set; } 

    [MaxLength(100)] 
    public string City { get; set; } 

    [MaxLength(15)] 
    public string PostalCode { get; set; } 

    public StateProvince StateOrProvince { get; set; } 

    public virtual CountryRegion CountryOrRegion { get; set; } 
} 

StateProvince & CountryRegion प्रकार मेरी DB में संस्थाओं (कैसे AdventureWorks नमूना डीबी काम करता है के समान) कर रहे हैं। समस्या यह है कि जब ईएफ मॉडल बनाने की कोशिश करता है, तो यह विफल रहता है:

प्रकार 'MyCo.Crm.Entities.StateProvince' पहले से ही एक इकाई प्रकार के रूप में कॉन्फ़िगर किया गया है। इसे एक जटिल प्रकार के रूप में पुन: कॉन्फ़िगर नहीं किया जा सकता ..

मैंने स्टेटप्रोवेंस को जटिल प्रकार बनाने की कोशिश की है लेकिन इससे समस्या हल नहीं होती है। विचार?

public class StateProvince { 
    [Key] 
    public int StateProvinceId { get; set; } 

    [MaxLength(3)] 
    public string StateProvinceCode { get; set; } 

    [MaxLength(50)] 
    public string Name { get; set; } 
} 

उत्तर

14

जटिल प्रकार cannot contain navigation properties। नेविगेशन गुण केवल इकाई में परिभाषित किया जा सकता है। तो अगर आप या तो:

  • उपयोग table splitting बजाय जटिल प्रकार है, लेकिन यह एक और समस्याओं में परिणाम होगा - उदाहरण के लिए आप उन प्रकार घोंसला करने के लिए सक्षम नहीं होगा और आप उन्हें लोड करने के लिए उत्सुक/आलसी लोड हो रहा है का उपयोग करना होगा। मुख्य इकाई
+0

करने के लिए सभी नेविगेशन गुण failright बिना के बाद

  • ले जाएँ मैं इस पोस्ट मैं अंत में एक और धागा है कि आपका जवाब उल्लेख मिला ... इस मामले मुझे लगता है कि मैं अपने राज्य और देश के गुण तार बनाती हूँ के लिए और कोड को स्टोर करें क्योंकि मैं लुकअप के साथ सौदा करता हूं क्योंकि मुझे मॉडल पसंद है। केवल नकारात्मक पक्ष सत्यापन टुकड़ा है, लेकिन मैं इसे अन्य तरीकों से संभाल सकता हूं। –

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