DAO数据访问对象是.NET中常用的模式吗?我一直使用DAO作为访问我的数据层的一种方式.例如,我可能在我的EntityFramework ObjectContext上有一个薄的界面,将我的所有ObjectSet都显示为IObjectSet.
然后,复杂查询将由DAO公开,每个DAO都依赖于此接口.我可能会有一个ProductDAO公开GetProductsOnSale()或GetInfrequenlySoldProducts()等方法.然后,我的控制器或演示者将使用这些方法,这些方法可能是虚拟的,以允许将单元测试的特定结果存根.
这是.NET中常用的成语吗?由于某种原因,我使用此模式在线查看的绝大多数示例基于Java.即使是this question在DAO最佳实践被标记为Java而不是C#.
使用另一个社区的东西没有什么问题,我只是有点担心,我周围的人都在做不同的事情…
解决方法
这是.NET中常见的成语.我已经使用它,并已经看到它在许多地方使用.
它被构建到框架中 – 参见System.Data
命名空间 – 许多类是专用提供程序(sql Server,Oracle,MysqL等)的基类,并且在基类上执行操作.
但是,你所描述的声音更像Repository Pattern,而不是简单地使用Data Access Objects.
这也被用于许多项目,虽然并没有内置到框架中.