实体框架5和存储库

时间:2012-12-19 14:47:25

标签: entity-framework repository

我正在学习EF 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中?

1 个答案:

答案 0 :(得分:0)

因为它通过将与数据库交互的代码与驱动应用程序的客户端部分的代码分开,使代码本身更易于测试。

有关存储库模式及其一般用途的更多说明,请参阅帖子herehere