首先使用EF4代码创建存储库类的最佳实践是什么?

Rus*_*ino 5 c# model-view-controller design-patterns asp.net-mvc-2

似乎有很多方法来应用存储库模式,这就是为什么我需要你的意见和一个很好的明确答案,看似应用存储库模式的最佳方式.它是通用存储库?但是存在一些问题,其中一些域对象不具有与其他域对象相同的行为.它是指定存储库?存储库之间的代码重复怎么样?它既是组合?如何使用di容器进行这两种实现?

谢谢

编辑:我正在使用的orm是实体框架4.很高兴有一个EF4的例子.

Dan*_*Lee 1

Gabriel Schenker 的这篇文章很好地解释了存储库模式。他用 NHibernate 实现它(你没有说你正在使用哪个 ORM)并提供了一个通用的基础存储库。对我来说,存储库模式与测试以及能够伪造或模拟它密切相关,这篇博客文章还展示了如何制作自己的伪造品。

根据我的经验,大多数存储库都共享一些常见的功能,例如 GetById、Add、Remove。所以拥有一个可以继承的基类是很有用的。当您开始考虑动态 Linq 查询以及如何测试这些查询时,事情会变得有点棘手。

使用 Linq 的存储库模式的示例可以在此处此处找到,但我会从简单的开始,因为这些对于某些项目来说可能有点过头了。