2012-12-13 7 views
5

मैप किया गया है मेरे पास एक साधारण इकाई डेटा मॉडल (VS2010 का उपयोग करके) है कि मैं एक साधारण SQL सर्वर डेटाबेस से इंजीनियर को उलट देता हूं जिसमें तीन असंबंधित तालिकाओं हैं।इकाई फ्रेमवर्क - एडीएम प्रकार को एक से अधिक

मैं निम्नलिखित कोड का उपयोग कर डेटाबेस के लिए डेटा को बचाने की कोशिश:

var dbOptions = new ARC_WHENTECHModel.TEMP_LANDED_WHENTECH_OPTION_POSITION(); 

//first map fields required for standard di processing 
dbOptions.OPTION_POSITION_SOURCE_ID = webSvcOption.TDR + "_" + webSvcOption.CNTR + "_" + webSvcOption.CRV; 
dbOptions.INSERTED_DT = DateTime.Now; 
dbOptions.CURRENT_IND = "Y"; 

//now map the data we've pulled from the web service call 
dbOptions.CA = webSvcOption.CA; 
dbOptions.CDTP = webSvcOption.CDTP; 
dbOptions.CMD = webSvcOption.CMD; 
dbOptions.CNTR = webSvcOption.CNTR; 
dbOptions.CPP = webSvcOption.CPP; 
dbOptions.PDTP = webSvcOption.PDTP; 
dbOptions.SPR = webSvcOption.SPR; 
dbOptions.TDR = webSvcOption.TDR; 


context.AddToTEMP_LANDED_WHENTECH_OPTION_POSITION(dbOptions); 
context.SaveChanges(); 

लेकिन मैं निम्न अपवाद प्राप्त करें:

An EdmType cannot be mapped to CLR classes multiple times. The EdmType 'RDLMServiceTier.TEMP_LANDED_WHENTECH_FUTURES_POSITION' is mapped more than once. 

निम्न पंक्ति (base.AddObject) डिजाइनर के भीतर कम से .cs कोड:

[global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")] 
public void AddToTEMP_LANDED_WHENTECH_OPTION_POSITION(TEMP_LANDED_WHENTECH_OPTION_POSITION tEMP_LANDED_WHENTECH_OPTION_POSITION) 
{ 
    base.AddObject("TEMP_LANDED_WHENTECH_OPTION_POSITION", tEMP_LANDED_WHENTECH_OPTION_POSITION); 
} 

क्या कोई भी सलाह दे सकता है कि मैं क्या गलत कर रहा हूं? मुझे एंटिटी फ्रेमवर्क के साथ ज्यादा अनुभव नहीं है (यह हमेशा अतीत में "अभी काम करता है")। मुझे लगता है कि अगला कदम ईएफ कोड को प्रतिबिंबित करना हो सकता है लेकिन यह काफी मुश्किल होगा क्योंकि मैं रिमोट मशीन पर डिबगिंग कर रहा हूं कि मेरे पास अतिरिक्त सॉफ़्टवेयर स्थापित करने के लिए बहुत अच्छा गुंजाइश नहीं है।

धन्यवाद

रोब।

+6

यह आमतौर पर इंगित करता है कि परियोजना में एक और 'TEMP_LANDED_WHENTECH_OPTION_POSITION' कक्षा है, भले ही यह एक अलग नामस्थान में हो। शायद मॉडल किसी भी तरह से दो बार उत्पन्न किया गया है? –

+0

वह था! किसी भी तरह से मैंने मॉडल फ़ाइल की एक प्रति उत्पन्न करनी होगी। बहुत धन्यवाद गर्ट। –

उत्तर

1

गर्ट ने इसका सही उत्तर दिया - मॉडल फ़ाइल की एक और प्रति मौजूद थी। एक बार दुहराई नाम तय किया गया था सब कुछ ठीक काम किया

[EdmComplexTypeAttribute(NamespaceName = "MyModel", Name = "MyDuplicatedClassName")] 

:

0

मैं सिर्फ एक समान समस्या, और विशिष्ट लाइन है कि वजह से यह था।

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