【发布时间】:2016-11-28 02:14:44
【问题描述】:
我开发了一个企业产品,目前在一些网站上运行。这是在 MS 堆栈上开发的,使用 SQL 服务器作为后端数据存储。 我没有使用 EF/NHibernate 进行数据访问,而是使用了 dapper 和一些相同的自定义扩展。这对我们来说效果很好,因为大多数 我们拥有的查询是跨多个表的复杂聚合和过滤器。拥有自定义 SQL 大大减少了我们在识别瓶颈和更快地修复它方面的工作量。
现在由于某些业务原因,我们需要为一位大客户支持 oracle(我们无法让他们使用 SQL,因为他们是一家完整的 oracle 商店)。
假设我需要更改许多数据类型以确保跨数据库的一致性,如果我能获得有关整体方法的一些指导会很有帮助
-
最好的方法是什么,以便我可以支持对两个数据源的查询
方法 1: 尝试将大部分查询转移到 ANSI SQL,并且只对一些专门的查询进行单独的查询
方法 2: 结合使用 EF 和 Dapper。 EF 将用于更简单的操作,而 dapper 将用于繁重的读取操作。无论何时再次使用 dapper,都可能需要对 oracle 和 sql 进行单独查询
方法 3: 继续使用 Dapper 并对所有操作进行单独查询
2) 我有用于数据库部署自动化的 dacpac。我如何为 oracle 实现同样的目标?
除了这些之外,在支持这两个数据库时,我还需要注意哪些其他事项,例如处理日期时间、货币等?
【问题讨论】:
标签: c# sql-server entity-framework repository-pattern dapper