Ich habe ein einfaches Entity-Datenmodell (mit VS2010), die ich aus einer einfachen SQL Server-Datenbank, die drei nicht verwandte Tabellen enthält, reverse entwickelt.Entity Framework - der Edm-Typ ist mehr als ein zugeordnet
Ich versuche, Daten in die Datenbank mit dem folgenden Code zu speichern:
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();
aber ich bekomme die folgende Ausnahme:
An EdmType cannot be mapped to CLR classes multiple times. The EdmType 'RDLMServiceTier.TEMP_LANDED_WHENTECH_FUTURES_POSITION' is mapped more than once.
in der folgenden Zeile (base.AddObject) im Designer .cs code:
[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);
}
Könnte jemand bitte beraten, was ich falsch machen könnte? Ich habe nicht viel Erfahrung mit Entity Framework (es hat immer "nur funktioniert" in der Vergangenheit). Ich denke, der nächste Schritt könnte darin bestehen, den EF-Code wiederzugeben, aber das wird ziemlich schwierig, weil ich auf einem entfernten Rechner debuggen muss, wo ich keinen großen Spielraum für die Installation zusätzlicher Software habe.
Danke
Rob.
Dies bedeutet normalerweise, dass im Projekt eine weitere 'TEMP_LANDED_WHENTECH_OPTION_POSITION'-Klasse vorhanden ist, auch wenn sie sich in einem anderen Namespace befindet. Vielleicht wurde das Modell schon zweimal generiert? –
Das war es! Irgendwie muss ich eine Kopie der Modelldatei erstellt haben. Vielen Dank Gert. –