【发布时间】:2011-09-19 11:17:36
【问题描述】:
我正在寻找 MS SQL Server 或普通旧 ADO.NET 的“工作单元”和“存储库”模式的参考实现。但所有示例都是围绕现有上下文(如 Linq2SQL 或 EF)构建的。据我了解,这些技术本身几乎就是在实现这些模式。
但是如何处理没有任何上下文和 SaveChanges() 方法的“普通”SQL 存储库?使用 TransactionScope 的正确方法是什么?例如,在一个命令列表中收集所有 SQL 操作,然后在 Tx 范围内一个接一个地简单地执行它们......还是这太简单了?
我为什么要找这个?我的任务是构建一个数据层,它既可以处理古老的 Sybase 数据库,也可以处理 SQL Server(可能与基于 POCO 的 EF4 组件结合使用)
为此,我的想法是创建一个具有存储库和工作单元模式的抽象层,并为每种技术创建不同的实现。
更新: 上周我在度假。抱歉耽搁了。今天我为此建立了我的架构的基本图景。 [链接](s7.directupload.net/file/d/2570/whb7ulbs_jpg.htm)。我的想法是创建一个简单的 ObjectContext,例如 EF ObjectContext,它与 EF 上下文并行存在并由我的存储库使用。此上下文将 ATOM Sql 事务收集在一种堆栈中,并在工作单元内的事务部分中执行它们。好主意?馊主意?难做?我期待您对此的看法。
【问题讨论】:
标签: c# design-patterns architecture ado.net repository-pattern