Mam prosty model danych Entity (przy użyciu VS2010), który poddałem inżynierii odwrotnej z prostej bazy danych SQL Server, która zawiera trzy niepowiązane tabele.Entity Framework - typ edm jest odwzorowany na więcej niż jeden
próbuję zapisać dane do bazy danych za pomocą następującego kodu:
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();
ale otrzymuję następujący wyjątek:
An EdmType cannot be mapped to CLR classes multiple times. The EdmType 'RDLMServiceTier.TEMP_LANDED_WHENTECH_FUTURES_POSITION' is mapped more than once.
na następującej linii (base.AddObject) w projektanta .cs kod:
[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);
}
Czy ktokolwiek może doradzić, co mogę robić źle? Nie mam dużego doświadczenia z Entity Framework (to zawsze "po prostu działało" w przeszłości). Sądzę, że następnym krokiem może być odzwierciedlenie kodu EF, ale to będzie dość trudne, ponieważ debuguję na zdalnym komputerze, którego nie mam wielkiego zakresu do instalowania dodatkowego oprogramowania.
Dzięki
Rob.
Zazwyczaj oznacza to, że istnieje inna klasa 'TEMP_LANDED_WHENTECH_OPTION_POSITION' w projekcie, nawet jeśli znajduje się ona w innym obszarze nazw. Może model został jakoś dwukrotnie wygenerowany? –
To było to! W jakiś sposób musiałem wygenerować kopię pliku modelu. Wielkie dzięki Gert. –