如何使用ADO.NET使用存储库和工作单元模式?

RKh*_*RKh 7 asp.net-mvc ado.net design-patterns unit-of-work repository-pattern

我正在构建ASP.NET MVC 5应用程序.

我读到工作库和单元(UOW)模式在这里.

这些示例使用Entity Framework,它本身添加了高级抽象.

我使用的是ADO.NET而不是EF.我想知道:

  1. Repository和UoW模式是否与ADO.NET有任何关系?
  2. 我的存储库和UoW如何看待ADO.NET?任何样品?
  3. 我可以为Repository添加一个单独的类库,还是让它成为DAL的一部分?

jga*_*fin 5

我写了一篇博客文章,教你如何编写与驱动程序无关的代码,以及如何使用普通的ADO.NET实现Uow/Repository模式.

在这个答案中包含它有点太长了,但基本上IDbtransaction它将代表你的单位工作(或包含在一个工作中),每个存储库都会在它的构造函数中使用事务或UoW.

使用a创建命令 IDbTransaction

using (var cmd = transaction.Connection.CreateCommand())
{
    cmd.Transaction = transaction;

    //do a CRUD operation here.
}
Run Code Online (Sandbox Code Playgroud)