2012-12-19 40 views
0

我正在学习EF 5,并试图理解从主窗口(加载点)将存储库传递到View Model的原因。EntityFramework 5和存储库

我已阅读,使用context最好的方式是通过使用block像这样:

 // within CompanyViewModel 
     using (var _context = new MyEntities()) 
     { 
      var _query = from co in _context.Companies 
         select co; 
      this.AllCompanies = new ObservableCollection<Models.Company>(_query); 

     } 

其中MyEntities是VS在EDMX文件中创建的对象。

所以我的问题是,如果我可以简单地调用ViewModel的MyEntities,为什么我会通过一个存储库(参考MyEntities)到每个ViewModel?

回答

0

因为它通过将与数据库交互的代码与驱动应用程序的客户端部分的代码分离,从而使您的代码更具可测性。

查看帖子herehere有关存储库模式及其一般用途的更多说明。