C#</t>中推荐的IRepository和IRepository <t>接口

时间:2011-07-23 15:22:33

标签: c# entity-framework repository repository-pattern

我正在为我的mvc web应用程序寻找一个简单的IRepository接口, 我做了很多搜索,并且有很多人的意见。 所以我决定问专家

如果您可以推荐常用的IRepository和IRepository接口,并回答基本的CRUD和查询操作(以支持过滤)。

如果您知道包含实现的框架并且可以使用EF 4,我很乐意,如果您能提及它们。

谢谢。

修改: 由于@Ladislav建议什么是替代方案,所以总是从我的代码中调用linq到ADO.net调用?使用从我的业务模型中抽象创建自定义POCOS的POCO存储库是一个好主意,我有一个需要从不同数据库条目中解析的Jewel POCO类,这是遗留系统的常见做法,我不能触摸数据库架构但只触及演示文稿

2 个答案:

答案 0 :(得分:9)

<强>停止即可。模式应该在需要时使用 - 当它们解决一些常见问题时 - 而不是因为它们存在。你显然现在不需要它,因为你没有写任何单一的要求存储库应该为你解决的问题 - 如果你想选择一个“好的”,那么这些要求是至关重要的。无论如何,一个好的通常在你的开发过程中发展,它通常不是预先定义的。

使用EF的通用存储库也是我在我自己的项目中使用过的最愚蠢的模式之一。只有成为特定存储库的父级才是好的。它仅适用于您通常根本不需要存储库的基本场景。

要阅读的内容:What is the point of generic repository

答案 1 :(得分:2)

存储库模式非常简单......您实际上不需要使用现有框架。您可以自己构建界面。在人们建立自己的博客中有很多很好的例子,并允许他们在测试中接近100%的代码覆盖率。以下是一些示例(但它们都遵循类似的模式):

Using Repository Pattern with Entity Framework(Gil Fink)

100% UNIT TESTABLE LINQ TO SQL REPOSITORY(Kazi Manzur Ra​​shid) - 我实际上是在他的工作中关注他的一些例子

Working together: LINQ to SQL, IRepository, Unit Of Work and Dependency Injection(斯图尔特哈里斯)

还有更多。

我认为自己构建它,特别是如果你只是学习模式,肯定会教会你很多关于模式的知识,并且还会让你深入了解什么对你的情况有用,什么没有。

我希望这有帮助!祝你好运。