Saltar al contenido

Cómo implementar GetById() genérico donde Id puede ser de varios tipos

Nuestro grupo redactor ha estado mucho tiempo investigando para darle espuestas a tu pregunta, te dejamos la respuesta así que nuestro deseo es servirte de gran apoyo.

Solución:

Debe eliminar la restricción sobre TId de su Repository clase

public abstract class Repository : IRepository
where TEntity : class, IEntity

    public virtual TEntity GetById(TId id)
    
        return context.Set().Find(id);
    

public interface IEntity where TId : class

    TId Id  get; set; 

Él where TId : class La restricción requiere que cada implementación tenga un Id que derive de un objeto que no es true para tipos de valor como int.

Eso es lo que te dice el mensaje de error: The type 'int' must be a reference type in order to use it as parameter 'TId' in the generic type of method IEntity

Simplemente elimine la restricción where TId : class desde IEntity

Te invitamos a añadir valor a nuestra información colaborando tu veteranía en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *