C#:存储库模式,是否有标准接口或我应该自己做饭?

时间:2011-04-08 21:59:39

标签: asp.net-mvc repository-pattern

对存储库模式进行了一些研究,我一直在为存储库编写自己的接口。

我想知道是否有一个我可以实现的标准接口具有Find方法和类似的东西?

我认为我需要为GetProduct,GetProducts等实现我自己的界面?

我也把所有东西放在一个存储库中,但这似乎变得非常大,我认为我应该把它们分成不同的存储库?我认为他们通过安全,产品,销售等方式将它们分开?

我似乎记得看到一个标准类型的Repository接口,我认为每个类都实现但我似乎找不到任何对它的引用

任何帮助或指导赞赏

2 个答案:

答案 0 :(得分:1)

如果您偶然谈论域驱动的设计存储库(我认为您不应该按照它们的方式进行讨论),Steve Bohlen's DDD presentation的代码会提供标准的存储库接口。我不会说它被广泛使用(即是标准的),但它确实严格遵守DDD指南(即遵循标准)。

如果您正在讨论数据访问层的更一般概念,我肯定不会因为与DDD概念的混淆而将其称为存储库,并且可能符合相同的方法名称等等。就像实体框架的ObjectContext类一样,如果合适,甚至只是ICollection<T>IDictionary<TKey, T>

答案 1 :(得分:0)

通过以下相关问题链接,我发现了这篇有趣的博文:Repository or DAO?: Repository

它表示为企业应用程序架构模式存储库耦合的适当接口是

public interface IRepository<T> : ICollection<T>, IQueryable<T> { }