如何在存储库模式(MVC)中拥有多个类

我对存储库模式有点困惑,在这里我写了我的代码然后我解释:


 public  interface IRepositoryTest<T> where T:class

{

  IEnumerable<T> SelectAll(Expression<Func<T, bool>> predicate);


}

这是上述签名的实现:


 public class RepositoryTest<T>:IRepositoryTest<T> where T:class

{


    private CentralEntities db = null;

    private DbSet<T> table = null;


    public RepositoryTest() {

    this.db = new CentralEntities();

    table = db.Set<T>();

                        }


    public RepositoryTest(CentralEntities db)

    {


        this.db = db;

        table = db.Set<T>();

    }



    public IEnumerable<T> SelectAll(Expression<Func<T, bool>> predicate)

    {


        return table.Where(predicate).ToList();


    }


}

现在在我的控制器中,如果我想使用这个存储库,我必须做这样的事情:


  IRepositoryTest<UserRoles> _repository = null;


    public DashbrdController(IRepositoryTest<UserRoles> _repository)

    {


        this._repository = _repository;



    }


    public DashbrdController()

    {


        this._repository = new RepositoryTest<UserRoles>();


    }


    public ActionResult DashBrd()

    {


        var rslt = _repository.SelectAll(s=>s.user_id=="myName");         

        return View();


    }

这里的问题是,在我的控制器中,我只能使用模型中的一个类,如您所见(UserRoles),如果我想向该控制器添加另一个类,我该怎么做?我想有多个类加入他们,但在我的控制器的构造函数中我只能使用一个类,问题出在哪里?


郎朗坤
浏览 192回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP