ObjectContext.GetObjectType (e.GetType ()) no devuelve el tipo de entidad de la entidad POCO

c# entity-framework entity-framework-6

Pregunta

El método ObjectContext.GetObjectType debe devolver "el tipo de entidad de la entidad POCO asociada con un objeto proxy de un tipo específico"

Entonces, ¿cómo en mi código simplemente devuelve el proxy?

Estoy usando entidad framework 6 release candidato

        //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";

Respuesta aceptada

Estás utilizando el ObjectContext incorrecto. EF6 no se basa en System.Data.Entity.dll. Debe usar ObjectContext desde EntityFramework.dll. En realidad, no se recomienda tener una referencia a System.Data.Entity.dll en su proyecto si está usando EF6 para evitar una situación como esta.

Para solucionar su problema:

  • eliminar la referencia a System.Data.Entity.dll (solo en el caso)
  • reemplace System.Data.Objects.ObjectContext.GetObjectType(e.GetType()); con System.Data.Entity.Core.Objects.ObjectContext.GetObjectType(e.GetType())



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué