Ну, мы мало знаем о вашем приложении, его размере и требованиях к доступу к базе данных. Но обычный стандартный подход, который я бы рекомендовал здесь, таков:
Начните создавать некоторый независимый от СУБД интерфейс для вашего DAL, который соответствует вашим потребностям, особенно при использовании из вашего устаревшего приложения. Важнейшая часть здесь состоит в том, чтобы избегать использования динамического SQL в качестве параметров в этом интерфейсе, поскольку диалекты SQL чаще всего слишком специфичны для СУБД, чтобы можно было использовать SQL в качестве уровня абстракции.
Сделайте две разные реализации этого интерфейса, по одной для каждой СУБД. Здесь такие вещи, как пользовательские запросы, могут потребоваться реализовать дважды, каждый раз с реализацией, адаптированной для конкретной СУБД.
Всякий раз, когда вы замечаете, что ваши две разные реализации имеют схожую логику, попытайтесь реорганизовать их в общее место, например, в общий базовый класс, который находится между вашим интерфейсом и классами реализации.
Конечно, когда вы можете выбрать технологию реализации для шага 2, которая позволяет обращаться к разным СУБД с помощью одного и того же кода, большая часть кода окажется на шаге 3 только в одном классе. В комментариях вы получили несколько предложений, таких как использование Dapper или EF без LINQ. Но это не обязательно решение «все или ничего», вы можете обобщить некоторые части и позволить некоторым другим существовать в качестве конкретных реализаций.
Это также вопрос размера: для «небольшого» уровня доступа к данным может быть приемлемо оставаться с простой технологией, такой как ADO.NET, и жить с некоторой повторяющейся логикой запросов. Для более крупного DAL ожидаемые затраты на введение еще одного уровня абстракции, такого как ORM или микро-ORM, могут быть намного ниже затрат на поддержку сотен дублирующих запросов.
TLDR: вместо того, чтобы пытаться принять решение заранее, идите по пути, который позволит вам принимать решение постепенно и постепенно, по ходу дела.
Рекомендую посмотреть эти видео для лучшего погружения в вопрос: