Проблема в том, что если вы хотите сделать что-либо удаленно (арифметика дат, генерировать первичные ключи, получить идентификатор последней вставленной записи, повернуть таблицу, использовать конструкцию RANGE и т. Д.), То обе базы данных используют совершенно разный синтаксис.
Лучшее решение (по крайней мере, в мире Java - это либо Ibatis, либо Hibernate). Я знаю, что существует версия .NET Hibernate. Я не уверен насчет Ibatis.
Эти библиотеки изолируют вашу программуиз различных диалектов SQL и предоставляют общий API, независимый от базовой базы данных.