Il metodo ObjectContext.GetObjectType deve restituire "il tipo di entità dell'entità POCO associata a un oggetto proxy di un tipo specificato"
Quindi, come mai nel mio codice viene restituito il proxy?
Sto usando la release candidate dell'entità framework 6
//Soft delete
var e = Context.Set<T>().Find(id);
e.IsDeleted = true;
InsertOrUpdate(e);
Type t = System.Data.Objects.ObjectContext.GetObjectType(e.GetType());
string name = t.Name;
//Property_6C887DE7274181E6E99D6FCF2C21BDD59E226F99B0064F59954E70062C135331
//Surely I shouldn't have to use Substring here?
name = name.Substring(0, name.IndexOf("_")).ToSpacedTitleCase();
string message = name + " deleted";
Stai usando l' ObjectContext
sbagliato. EF6 non è costruito su System.Data.Entity.dll. È necessario utilizzare ObjectContext
da EntityFramework.dll. In realtà non è consigliabile avere un riferimento a System.Data.Entity.dll nel proprio progetto se si utilizza EF6 per evitare situazioni come questa.
Per risolvere il tuo problema:
System.Data.Objects.ObjectContext.GetObjectType(e.GetType());
con System.Data.Entity.Core.Objects.ObjectContext.GetObjectType(e.GetType())