【问题标题】:ASP.NET MVC 4, need help to get my GenericRepository to workASP.NET MVC 4,需要帮助才能让我的 GenericRepository 工作
【发布时间】:2013-07-13 19:46:04
【问题描述】:

我创建了一个通用存储库

这是我的代码:

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 是从GenericRepository 继承的。我假设在employeeRepository 中应该可以使用“保存、插入、删除”。但是当我在服务层中使用employeeRepository 时,它们不存在。

public interface IEmployeeRepository
{ 

}

public class EmployeeRepository: GenericRepository<Employee>, IEmployeeRepository
{
    public EmployeeRepository():base()
    {
    }
}

【问题讨论】:

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


    【解决方案1】:

    我假设您在服务层中使用 IEmployeeRepository,而不是 EmployeeRepository,并且由于 IEmployeeRepository 没有具有任何这些方法,这是有道理的。

    您是针对接口而不是实现进行编码,因此虽然实际对象确实具有这些方法,但您将无法在不诉诸反射的情况下调用它们。您还需要从 IGenericRepository&lt;T&gt; 继承 IEmployeeRepository 才能获取其他方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      • 2015-02-11
      相关资源
      最近更新 更多