El tipo o nombre de espacio de nombres &#39;DbEntityEntry <TEntity> &#39; no pudo ser encontrado

c# entity-framework-core

Pregunta

Tengo la siguiente interfaz que usé antes de EF7. Cuando intento compilar la aplicación con EF7, recibo el siguiente error y parece que no puedo encontrar este tipo en ninguna parte. Realmente agradecería sus sugerencias sobre cómo cambiar este código para EF7.

Error CS0246 No se pudo encontrar el tipo o el nombre de espacio de nombres 'DbEntityEntry' (¿falta una directiva de uso o una referencia de ensamblado?)

public interface IContext
{
    DbSet<Client> Clients { get; set; }
    DbSet<TEntity> Set<TEntity>() where TEntity : class;

    DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class;

    int SaveChanges();
}

Respuesta aceptada

No hay ningún tipo DbEntityEntry en Entity Framework 7. Toda la implementación del seguimiento de cambios subyacente ha cambiado y no hay una réplica exacta de esto.

Hay un tipo EntityEntry dentro del nuevo espacio de nombres Microsoft.Data.Entity.ChangeTracking que tiene un propósito similar, pero funciona un poco diferente ya que no es compatible con el tipo DbEntityEntry en versiones anteriores de Entity Framework.

Puede acceder a él desde ChangeTracker que se puede acceder a través de DbContext.ChangeTracker .

Pero en cuanto a mantener esa interfaz, es poco probable que esto te ayude ya que algunas cosas han cambiado.




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é