2010-08-23 76 views
0

这是我创建的另一个线程的转发。我认为我的第一篇文章在大自然中有点修辞,所以它被关闭了,希望我能更好地说出我的问题。使用ORM替换存储库模式?

似乎推动了一些业界权重推荐在存储库模式上使用ORM并构建您的DL层。因此,在应用程序层中,您将直接使用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

我肯定会从我的DL中分离出ORM。即使用接口来切换你选择的ORM并不是太多工作。

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

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

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

+0

雅它总结了我的想法。在ORM上使用一个存储库,该存储库仍然使用包装ORM的存储库。我只是不能成像设置对任何ORM的依赖。我认为这可能会导致未来的痛苦 – coding4fun 2010-08-23 15:39:34

+0

我会考虑打破我自己的规则的唯一时间,如果我原型,我知道会被丢弃的东西。但如果你有一个存储库的DLL你可以重复使用它不会节省那么多时间 – ArtificialGold 2010-08-23 16:13:42