我创建了一个genericrepository
这是我的代码:
public interface IGenericRepository<T> : IDisposable where T: class
{
void Save();
void Insert(T entity);
void Delete(T entity);
}
public class GenericRepository<T> : IGenericRepository<T> where T: class
{
private readonly DSContext _context;
public GenericRepository()
{
_context = new DSContext();
}
public void Save()
{
_context.SaveChanges();
}
public void Insert(T entity)
{
_context.Set<T>().Add(entity);
}
public void Delete(T entity)
{
_context.Set<T>().Remove(entity);
}
}
这是我的employeeRepository。它是空的,没有,但employeeRepository继承自GenericRepository。我假设employeeRepository中应该提供“保存,插入,删除”。但是当我在服务层中使用employeeRepository时,它们不在那里。
public interface IEmployeeRepository
{
}
public class EmployeeRepository: GenericRepository<Employee>, IEmployeeRepository
{
public EmployeeRepository():base()
{
}
}
答案 0 :(得分:2)
我假设您在服务层使用IEmployeeRepository
,而不是EmployeeRepository,并且由于IEmployeeRepository 不具有任何这些方法,因此它是有意义的。
您正在编写接口而不是实现,因此虽然实际对象确实具有这些方法,但如果不使用反射,您将无法调用它们。您需要让IEmployeeRepository继承IGenericRepository<T>
以获取其他方法。