DAO模式是否在.NET中广泛使用?

Ada*_*kis 15 .net c# dao

DAO数据访问对象是.NET中常用的模式吗?我一直使用DAO作为提供访问我的数据层的方法.例如,我可能在我的EntityFramework ObjectContext上有一个瘦接口,将我的所有ObjectSet暴露为IObjectSet.

然后,DAO将公开复杂查询,每个DAO都依赖于此接口.我可能有一个ProductDAO暴露像GetProductsOnSale()或的方法GetInfrequenlySoldProducts().然后我的控制器或演示者将使用这些方法,这些方法可能是虚拟的,以允许对单元测试的特定结果进行存根.

这是.NET中常用的习惯用法吗?出于某种原因,我在线使用此模式看到的绝大多数示例都基于Java.甚至 关于DAO最佳实践的这个问题也被标记为Java而不是C#.

使用来自其他社区的东西没有任何问题,我只是有点担心我身边的每个人都在以不同的方式做事......

Ode*_*ded 9

这是.NET中常见的习语.我已经使用过它并且已经在许多地方使用过它.

它内置于框架中 - 请参阅System.Data命名空间 - 许多类是专用提供程序(SQL Server,Oracle,MySQL等)的基类,并且操作在基类上执行.

但是,您所描述的内容对我而言更像是存储库模式,而不仅仅是使用数据访问对象.

这也用于许多项目,但没有内置到框架中.

  • @Adam - 不是真的,“DAO”是实际数据库接口的“抽象”,“Repository”是抽象“DAO”的使用来表示假定的“内存中”集合。 (2认同)