EF Code First
中的 DbContext 实现了 Unit of Work 和 Repository 模式,正如MSDN 网站所说:
一个 DbContext 实例表示 Unit Of Work 和 Repository 模式的组合,使其可以用于从数据库中查询并将更改分组,然后作为一个单元写回存储。DbContext 在概念上类似于 ObjectContext。
这是否意味着在 DbContext 上使用另外的 UoW 和 Repository 抽象(例如 IRepository 和 IUnitOfWor)是错误的?
换句话说,在 DbContext 上使用另一层抽象是否为我们的代码增加了任何附加值?
例如,技术无关的 DAL(我们的域将依赖于 IRepository 和 IUnitofWork 而不是 DbContext)。