UOW+经典ado.net MVC存储库
本文关键字:存储 MVC net 经典 ado UOW+ | 更新日期: 2023-09-27 18:23:37
我已经阅读了stackoverflow.com 的两个问题
- 经典ADO.NET仍在使用吗
- Net MVC与经典ADO.Net的结合
我真的很感激他们两个
我非常喜欢Repository设计模式,所以我想在我的项目中使用它,该项目使用ASP.net MVC和Classic Ado.net。
上面的第2个问题已经解释了我如何使用存储库模式和经典的ado.net技术。
我想知道的一件事是,当涉及到经典的ado.net技术时,是否可以使用与工作单元相结合的Repository模式。
有人能给我任何关于这方面的参考链接吗?
如果只有Repository+ClassicAdo.net的引用,那么也请告诉我该引用。
确实可以将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。