用ORM替换存储库模式?

时间:2010-08-23 15:26:40

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

这是我创建的另一个帖子的转贴。我认为我的第一篇文章在性质上有点夸张,所以它已经关闭,所以希望我能更好地说出我的问题。

一些业界人士似乎倾向于推荐在存储库模式上使用ORM并构建您的DL Layer。因此,在您的应用程序层中,您将直接使用ORM而不是存储库。一个例子是ayende的帖子:http://ayende.com/Blog/archive/2009/04/17/repository-is-the-new-singleton.aspx以及Dino Espisito阅读“Microsoft®.NET:为企业构建应用程序”,他推荐了同样的东西。

我想,我只是犹豫不决,将我的DL绑定到ORM。我没有使用过nHibernate,只对LINQ2SQL和实体框架v.1有轻微的曝光。我只能想象如果我将一个DL层绑定到LINQ2SQL,这实际上是非常强调的。

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

1 个答案:

答案 0 :(得分:1)

我肯定会将ORM与我的DL分开。即使用接口切换你选择的ORM并不是很多工作。

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

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

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