2010-05-03 3 views
0

J'ai le modèle suivant où je viens de modifier mon interface IEntity pour prendre un type générique car j'ai plusieurs types d'identité.Utilisation de Generics sur une classe de base Repository

public interface IEntity<T> 
{ 
    T Id { get; set; } 
} 

public class Product : IEntity<int> 
{ 
    public int Id { get; set; } 
} 

Maintenant, je dois modifier mon IRepository et IProductRepository pour refléter ce changement, mais je ne sais pas comment.

public interface IRepository<TEntity> where TEntity : IEntity 
{ 
    void Add(TEntity entity); 

    void Delete(TEntity entity); 
} 

public interface IProductRepository : IRepository<Product> 
{ 

} 

Quelqu'un veut-il me pousser dans la bonne direction?

Merci

Répondre

3

Vous devez ajouter un second paramètre générique:

public interface IRepository<TEntity, TID> where TEntity : IEntity<TID> 
{ 
    void Add(TEntity entity); 

    void Delete(TEntity entity); 
} 


public interface IProductRepository : IRepository<Product, int> 
Questions connexes