2010-08-23 68 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