ASP.NET MVC 4,需要帮助才能使我的GenericRepository工作

时间:2013-07-13 19:46:05

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 repository-pattern

我创建了一个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()
    {
    }
}

1 个答案:

答案 0 :(得分:2)

我假设您在服务层使用IEmployeeRepository,而不是EmployeeRepository,并且由于IEmployeeRepository 具有任何这些方法,因此它是有意义的。

您正在编写接口而不是实现,因此虽然实际对象确实具有这些方法,但如果不使用反射,您将无法调用它们。您需要让IEmployeeRepository继承IGenericRepository<T>以获取其他方法。