在Repository基类上使用Generics

时间:2010-05-03 19:25:09

标签: c# generics

我有以下模型,我刚刚修改了我的IEntity接口以采用泛型类型,因为我有多种身份类型。

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

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

现在我必须修改我的IRepository和IProductRepository以反映这种变化,但我不确定如何。

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

    void Delete(TEntity entity);
}

public interface IProductRepository : IRepository<Product>
{

}

任何人都在努力推动我朝着正确的方向前进?

由于

1 个答案:

答案 0 :(得分:3)

您需要添加第二个通用参数:

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

    void Delete(TEntity entity);
}


public interface IProductRepository : IRepository<Product, int>