任何人都可以建议一种通用化以下接口的方法,这样我就可以拥有一个单独的接口而不是每个存储库一个接口。
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();
}
答案 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();
}