UOW+经典ado.net MVC存储库

本文关键字:存储 MVC net 经典 ado UOW+ | 更新日期: 2023-09-27 18:23:37

我已经阅读了stackoverflow.com 的两个问题

  1. 经典ADO.NET仍在使用吗
  2. Net MVC与经典ADO.Net的结合

我真的很感激他们两个
我非常喜欢Repository设计模式,所以我想在我的项目中使用它,该项目使用ASP.net MVC和Classic Ado.net。

上面的第2个问题已经解释了我如何使用存储库模式和经典的ado.net技术。

我想知道的一件事是,当涉及到经典的ado.net技术时,是否可以使用与工作单元相结合的Repository模式。

有人能给我任何关于这方面的参考链接吗?

如果只有Repository+ClassicAdo.net的引用,那么也请告诉我该引用。

UOW+经典ado.net MVC存储库

确实可以将UoW、Repository和"classic"ADO.NET进行组合。

不过,您的UoW需要根据实体类型访问相关的存储库。您可以让您的存储库实现一个通用接口。例如:

public interface IRepository<T>
{
    void Add(T instance);
    T Get(Guid id);
    void Remove(Guid id);
    void Remove(T instance);
}

由于每个UoW都是一个单独的实例,因此您需要使用一个工厂。然后,这个工厂将把存储库注入UoW,或者给它一些IRepositoryProvider实例,它可以根据类型返回相关的存储库。因此,从概念上讲:

public interface IRepositoryProvider
{
    IRepository<T> Get<T>();
}

这些都是非常的粗笔画,所以我希望这是有意义的。

IMO如果你想使用Repository和UoW,没有理由使用"经典"ADO.Net。各种ORM框架为你实现了Repository+UoW模式,你只需将它们插入你的应用程序中(假设你的应用是围绕这些模式设计的)。

只有当我不想使用Repository/UoW模式(例如事务脚本模式)时,我才会使用经典的ADO.Net。