我已经从stackoverflow.com读了两个问题
我真的很感激他们两个 我非常喜欢Repository Design Pattern,我想在我的项目中使用ASP.net MVC和Classic Ado.net。
上面的问题2解释了我如何使用存储库模式和经典的ado.net技术。
我想知道的一件事是,当涉及到经典的ado.net技术时,是否可以使用与工作单元相结合的存储库模式。
有人可以给我任何参考链接吗?
如果仅存在Repository + Classic Ado.net的引用,那么请告诉我该引用。
答案 0 :(得分:3)
确实可以将UoW,Repository和“经典”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>();
}
这些非常广泛的笔画,所以我希望这是有道理的。
答案 1 :(得分:2)
IMO如果你想使用Repository和UoW,没有理由使用“经典”ADO.Net。各种ORM框架为您实现Repository + UoW模式,您只需将它们插入应用程序(假设您的应用程序是围绕这些模式设计的)。
当我没有想要使用Repository / UoW模式(例如,事务脚本模式)时,我只使用经典的ADO.Net。