2012-10-03 12 views
8

मुझे डीएफ से बनाए गए ईएफ 4 और टीपीएच मॉडल के साथ विरासत का उपयोग करने की आवश्यकता है।
मैंने सिम्पल कक्षाओं का परीक्षण करने के लिए एक नया प्रोजेक्ट बनाया है।ईएफ 4 और एकाधिक सार स्तर

enter image description here

एसक्यूएल सर्वर 2008 में मेरी टेबल है: मेरी कक्षा मॉडल नहीं है

VEHICLE 
    ID : int PK 
    Owner : varchar(50) 
    Consumption : float 
    FirstCirculationDate : date 
    Type : varchar(50) 
    Discriminator : varchar(10) 

मैं स्कूटर, कार अंतर करने के लिए Discriminator मैदान पर मेरी edmx में एक शर्त का जोड़ा, मोटरबाइक और बाइक इकाइयां।

मोटरसाइकिलवहन और वाहन सार हैं।

लेकिन जब मैं संकलन, यदि यह त्रुटि दिखाई:

त्रुटि 3032: EntityTypes EF4InheritanceModel.Scooter, EF4InheritanceModel.Motorbike, EF4InheritanceModel.Car, EF4InheritanceModel: मानचित्रण टुकड़े में समस्या लाइनों 78, 85 से शुरू। तालिका वाहन में एक ही पंक्तियों के लिए बाइक मैप किया जा रहा है। मैपिंग स्थितियों का उपयोग पर किया जा सकता है, जिन पंक्तियों को इन प्रकारों से मैप किया गया है उन्हें अलग करें।

संपादित करें:
Ladislav करने के लिए:
मैं इसे करने की कोशिश और त्रुटि परिवर्तन मेरी संस्थाओं के सभी के लिए यह बनने के लिए:

त्रुटि 3034: मानचित्रण टुकड़े में समस्या लाइनों 72 से शुरू, 86: एक इकाई को उसी तालिका में अलग पंक्तियों के लिए मैप किया गया है। इन दो मैपिंग टुकड़ों को सुनिश्चित करें कि पंक्तियों के दो अलग-अलग समूहों में अतिव्यापी कुंजी वाले इकाइयों के समूह दो मानचित्र नहीं हैं।

हेंक करने के लिए (Ladislay सुझाव के साथ):
वहाँ मैपिंग के पूरे विवरण को कर रहे हैं: enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here

क्या गलत है?

धन्यवाद

+0

क्या आप कुछ मैपिंग विवरण पोस्ट कर सकते हैं? अधिकतर भेदभाव से संबंधित है। –

+0

अमूर्त कक्षाओं के लिए कुछ भेदभाव मूल्य भी जोड़ने का प्रयास करें। –

+0

धन्यवाद, लेकिन काम नहीं करता है। मेरी पोस्ट देखें, मैंने इसे समझाया। जानकारी के लिए, यदि मैं MotorizedVehicle और वाहन सार संपत्ति को हटा देता हूं, तो यह काम है। लेकिन मुझे अमूर्त की जरूरत है। – Cedric

उत्तर

1

ईएफ 4 इन अच्छी तरह से संभाल नहीं करता है। आप इसे एक भेदभावकर्ता के साथ कर सकते हैं, लेकिन कक्षाओं को गैर-सारणी होने की आवश्यकता है। आपको कोड विश्लेषण या परीक्षण जैसे किसी अन्य विधि का उपयोग करना होगा ताकि यह सुनिश्चित किया जा सके कि आधार वर्ग कभी भी इकाई फ्रेमवर्क के अलावा किसी अन्य चीज़ द्वारा तत्काल नहीं हो जाता है।

या, आप ईएफ 6 में अपग्रेड कर सकते हैं। मुझे यकीन नहीं है कि यह बेहतर तरीके से इसका समर्थन करेगा, लेकिन यह निश्चित रूप से मॉडल पदानुक्रमों को बेहतर तरीके से संभालता है, जिससे मॉडल बेहतर तरीके से बेहतर डेटाबेस स्कीमा की अनुमति मिलती है।

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