通用存储库接口

时间:2012-08-09 10:50:33

标签: c# interface generic-interface

任何人都可以建议一种通用化以下接口的方法,这样我就可以拥有一个单独的接口而不是每个存储库一个接口。

public interface IClass1Repository
{
    Class1 NewEntity();
    Class1 AddOrUpdate(Class1 entity);
    Class1 GetById(int Id);
    Class1 GetByNavigation(string NavigationString);
    IQueryable<Class1> All();
}

public interface IClass2Repository
{
    Class2 NewEntity();
    Class2 AddOrUpdate(Class2 entity);
    Class2 GetById(int Id);
    Class2 GetByNavigation(string NavigationString);
    IQueryable<Class2> All();
}

public interface IClass3Repository
{
    Class3 NewEntity();
    Class3 AddOrUpdate(Class3 entity);
    Class3 GetById(int Id);
    Class3 GetByNavigation(string NavigationString);
    IQueryable<Class3> All();
}


public interface IClass4Repository
{
    Class4 NewEntity();
    Class4 AddOrUpdate(Class4 entity);
    Class4 GetById(int Id);
    Class4 GetByNavigation(string NavigationString);
    IQueryable<Class4> All();
}

2 个答案:

答案 0 :(得分:3)

试试这个:

public interface IRepository<T>
{
    T NewEntity();
    T AddOrUpdate(T entity);
    T GetById(int Id);
    T GetByNavigation(string NavigationString);
    IQueryable<T> All();
}

答案 1 :(得分:0)

这样的事情会这样做:

public interface IRepository<T>
{
    T NewEntity();
    T AddOrUpdate(T entity);
    T GetById(int Id);
    T GetByNavigation(string NavigationString);
    IQueryable<T> All();
}