推荐IRepository和IRepositoryc#接口

本文关键字:IRepository 接口 推荐 | 更新日期: 2023-09-27 18:03:21

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

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

如果你知道一些框架也包含了实现,并且可以与EF 4一起工作,我希望你能提到它们。

谢谢。

编辑:正如@Ladislav建议的那样,替代方案是什么,总是从我的代码中调用linq来调用ADO.net调用?使用从我的业务模型中抽象创建自定义POCOS的POCO存储库是一个好主意吗?我有一个需要从不同的DB条目中解析的Jewel POCO类,这是遗留系统的常见做法吗?在遗留系统中,我不能触摸DB架构,只能触摸表示

推荐IRepository和IRepository<T>c#接口

停止。模式应该在需要的时候使用——当它们解决一些常见问题的时候——而不是因为它们的存在。显然,您目前并不需要它,因为您没有编写任何存储库应该为您解决的单个需求—如果您想要选择一个"好的"开始,这些需求是至关重要的。无论如何,一个好的规则通常是在你的开发过程中发展的,它通常不是预先定义的。

在我自己的项目中,EF的通用存储库是我使用过的最愚蠢的模式之一。最好只作为特定存储库的父库。它只在你不需要存储库的基本场景下工作。

要点:通用存储库的意义是什么

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

使用实体框架使用存储库模式(Gil Fink)

100%单元可测试的LINQ TO SQL存储库(Kazi Manzur Rashid)——我实际上在我的工作中遵循了他的一些示例

协同工作:LINQ to SQL, IRepository,工作单元和依赖注入(Stuart Harris)

还有很多。

我认为自己构建它,特别是如果你只是在学习模式,肯定会教会你很多关于模式的知识,也会让你洞察到什么适合你的情况,什么不适合。

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