possibly create better parity with sql server provider data types


I support an application that must run on both sql server and oracle. The databases are kept as close as possible to each other, as far as schemas. I would like to be able to use the same conceptual model and swap out the storage model (and possibly the mapping) to enable the app to switch transparently between the two db's.
I was able to do this successfully for select queries by using the mapping file to map from the conceptual model to one that was enhanced for oracle with all upper case table and column names.
However, doing a delete (and I imagine an update would too) causes errors to happen as the primary key column is an int in sql server, and a number in oracle. The provider apparently handles the number field as a Decimal internally, and didnt know how to handle this mapping correctly.
I'd love to hear any suggestions on making this work.