【问题标题】:Replacing repository pattern with an ORM?用 ORM 替换存储库模式?
【发布时间】:2010-08-23 15:26:39
【问题描述】:

这是我创建的另一个帖子的转贴。我认为我的第一篇文章本质上有点修辞,所以它被关闭了,所以希望我能更好地表达我的问题。

似乎有一些行业重量级人物建议在存储库模式上使用 ORM 并在 DL 层上构建您的。因此,在您的应用程序层中,您将直接使用 ORM 而不是存储库。一个例子是 ayende 的帖子:http://ayende.com/Blog/archive/2009/04/17/repository-is-the-new-singleton.aspx 并且还阅读了 Dino Espisito 的“Microsoft® .NE​​T:为企业构建应用程序”,他在其中推荐了同样的东西。

我想,我只是犹豫将我的 DL 绑定到 ORM。我没有使用过 nHibernate,只对 LINQ2SQL 和实体框架 v.1 有过接触。我只能想象我是否会将 DL 层绑定到 LINQ2SQL,而这实际上已经被淡化了。

所以真正的问题是,您认为使用 ORM 代替存储库模式是不好的做法吗?毫无疑问,ORM 肯定会提高生产力。

【问题讨论】:

    标签: .net design-patterns orm domain-driven-design repository


    【解决方案1】:

    我肯定会将 ORM 与我的 DL 分开。 IE。使用接口切换您选择的 ORM 并没有太多工作。

    我们为存储库模式基础创建了一个项目,然后在我们所有的数据层中使用它以确保一致性并提高速度。

    我已经使用 Active Record 完成了这项工作,而且效果非常好。我可以在不知道我正在使用 Active Record 的情况下进行单元测试,并且还可以在 Active Record 实现上使用集成测试来确保数据 IO 正常。 (可能有点矫枉过正,但我​​喜欢它)。

    总之,你的 ORM 应该帮助你实现你的存储库模式而不是代替它。

    【讨论】:

    • ya 它总结了我的想法。在 ORM 之上使用存储库,这会产生仍然使用包装 ORM 的存储库。我只是无法想象设置对任何 ORM 的硬依赖。我认为这可能会导致未来的痛苦
    • 唯一一次我会考虑打破自己的规则是,如果我正在制作我知道会被丢弃的东西的原型。但是,如果您有一个存储库 dll,您可以重复使用它并不会节省那么多时间
    猜你喜欢
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2011-10-01
    相关资源
    最近更新 更多