c# - .NET 中广泛使用 DAO 模式吗?

标签 c# .net dao

DAO(数据访问对象)是 .NET 中常用的模式吗?我一直使用 DAO 作为提供对我的数据层的访问的一种方式。例如,我可能在 EntityFramework ObjectContext 上有一个薄接口(interface),将我的所有 ObjectSet 公开为 IObjectSet。

然后 DAO 将公开复杂的查询,每个 DAO 都依赖于此接口(interface)。我可能有一个 ProductDAO,它公开了诸如 GetProductsOnSale()GetInfrequenlySoldProducts() 之类的方法。然后我的 Controller 或演示者将使用这些方法,这些方法可能是虚拟的,以允许为单元测试 stub 特定结果。

那么这是 .NET 中常用的习语吗?出于某种原因,我在网上看到的绝大多数使用这种模式的例子都是基于 Java 的。连this question关于 DAO 的最佳实践被标记为 Java 而不是 C#。

使用其他社区的东西并没有错,我只是有点担心我周围的每个人做事的方式都不一样......

最佳答案

它是 .NET 中的常用习惯用法。我用过它,也看到它用在很多地方。

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

但是,您所描述的听起来更像是 Repository Pattern对我来说,不仅仅是使用Data Access Objects .

虽然没有内置到框架中,但也用于许多项目。

关于c# - .NET 中广泛使用 DAO 模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5795278/

相关文章:

c# - gacutil 不被识别为内部或外部命令?

C# 将 Func<T, List<myClass>> 数组传递给方法

dependency-injection - EJB3 与数据访问对象

java - 不使用 ORM 实现实体类之间的关系

c# - 从 Main 函数最大化窗口?

Java 传输对象,它是什么?

c# - 模拟 ApplicationUser 并提供角色

c# - 发布后 Controller 中收到的模型为空

c# - ObservableCollection 以及存储库

c# - System.Threading.ThreadPool.SetMaxThreads 的默认值