以工作单元模式实现自定义存储库

时间:2014-05-19 20:30:15

标签: c# asp.net-mvc unit-of-work

我读了很多关于工作单元模式的实现,例如http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-applicationhttp://gaui.is/how-to-mock-the-datacontext-linq/

他们在工作单元中保留了一个通用的基础存储库类或接口,该工作类非常有效。实际上,我的存储库需要更多功能,因为通用接口存储库提供了这些功能。

所以我的目标是在必要时使用自定义存储库。但我不确定如何实施它们。我不想在工作单元中定义它们,如下所示,

public class UnitOfWork : IDisposable
{
    private SchoolContext context = new SchoolContext();
    private CustomRepository<Department> departmentRepository;
    private GenericRepository<Course> courseRepository;
 [...]

因为我无法再次使用UnitOfWork类。我认为上面的示例代码与UnitofWork模式相矛盾。

当我构建类似于http://gaui.is/how-to-mock-the-datacontext-linq/的内容时,是否有人知道如何在工作单元模式中以干净的方式实现自定义存储库?

最好的问候

1 个答案:

答案 0 :(得分:0)

一般来说,在工作单元模式中,只有数据库CRUD操作在通用存储库中进行接口。最重要的是,引入了服务层来操纵CRUD操作到业务操作。你可以通过在通用存储库中添加更多操作来证明你的决定吗?你应该把它们放在服务层吗?