2011-10-24 94 views
0

我在我的最新項目中使用了一個自制的存儲庫模式(!)以及PetaPoco。當編寫一些數據檢索程序時,我的大腦突然跳了起來。如何使用存儲庫模式獲取單個對象?

目前我有Repo.GetMyObjects,從db返回IList<MyObject>Repo.GetMyObject返回MyObject

這是繼續進行的正確方法嗎?或者我應該讓我的Repo.GetMyObjects返回IEnumerable<MyObject>,然後在我的控制器中使用Repo.GetMyObjects().SingleOrDefault(q => q.ID == MyWantedObjectID)來獲取單個對象?

回答

0

讓你的Repo.GetMyObject在那裏下注,並讓它做你所描述的。因此,如果需要,您可以更改實施,並且所有呼叫者都不需要任何更改。

0

如果您只需要一個實例,那麼檢索整個MyObject實例將是愚蠢的。如果數據庫中有成千上萬的實例,請考慮這會帶來的性能成本。

所以,你會在你的倉庫,它檢索你感興趣的唯一對象需要一個GetMyObject方法

1

走得更遠比ANKUR的回答是:你正在做的方式實際上是比較正確的,因爲必須添加SingleOrDefault()調用似乎是存儲庫應該爲您做的事情。

相關問題