为什么ObjectContext类不是从某些接口派生的?

时间:2010-09-06 05:08:09

标签: unit-testing mocking entity-framework-4 repository-pattern

我认为MS的人比我更聪明。我试图构建/测试几乎遵循this方法的存储库,除了我想在存储库中松散地耦合ObjectContext依赖项。我发现,为了解耦这个问题,我需要像this文章中所示跳过很多箍。即使这种方法很难处理

  1. 您有来自现有数据库的edmx
  2. 您有一个围绕ObjectContext接口和IObjectSet
  3. 构建的通用存储库
  4. 在进行单元测试时,您想要伪造此对象上下文并将所有操作保留在内存中。想想测试存储库。
  5. 现在真正的问题是,为什么ObjectContext的创建者决定不拥有IObjectContext?

    我希望我的问题有道理,如果有人能够证明它没有并向我指明方向,我会很高兴。

    提前致谢!

1 个答案:

答案 0 :(得分:5)

由于上下文是一个分部类,您可以在一个单独的文件中轻松添加一个接口: public partial class YourContext : IMyCustomInterface,您可以在生成的ObjectContext中输入要使用的任何签名的IMyCustomInterface。

或者您可以采用(通常)更推荐的方式,即将对象内容抽象到存储库中,如this blog post中那样(整个系列帖子很有趣且相关)或this one