I have developed an enterprise product which is currently live in a few sites. This was developed on the MS stack using SQL server as back-end data storage. I have not used EF/NHibernate for data-access, instead used dapper and some custom extensions around the same. This has worked well for us since most of the queries we have are complex aggregates and filters across multiple tables. Having custom SQL largely reduces our effort in identifying bottlenecks and fixing it faster.
Now due to some business reasons we need to support oracle for one large customer (There was no way we could get them to use SQL since they are a complete oracle shop).
Assuming I need to change many data types to ensure consistency across the databases, It would be helpful if I can get some directions on overall approach
What is the best way to approach so that I can support queries on both data-sources
Approach 1 : Attempt to move majority of the queries to ANSI SQL and only have seperate queries for some specialized queries
Approach 2 : Use combination of EF and Dapper. EF will be used for simpler operations and dapper will used to heavy lifting read operations. Whereever dapper is used again might need to have seperate queries for oracle & sql
Approach 3 : Continue to use Dapper and have separate queries for all the operations
2) I have dacpac for database deployment automation. How do I achieve the same thing for oracle?
Apart from these are there any other items which I need to watch out when supporting both databases, like handling datetime, currency etc ?