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

本文关键字:自定义 存储 实现 工作 单元 模式 | 更新日期: 2023-09-27 18:04:02

我读了很多关于工作单元模式的实现,例如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-application或http://gaui.is/how-to-mock-the-datacontext-linq/

他们在工作类的单元中保留了一个通用的基本存储库类或接口,这工作得很好。在实践中,我的存储库需要像通用接口存储库那样提供更多的功能。

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

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/的东西时,有人知道如何在工作单元模式中以干净的方式实现自定义存储库吗?

致以最美好的祝愿

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

一般来说,在工作单元模式中,只有数据库CRUD操作在通用存储库中进行接口。在此基础上,引入了服务层来将CRUD操作操纵为业务操作。您可以通过向通用存储库中添加更多操作来证明您的决定是正确的吗?应该把它们放在服务层吗?