Здравствуйте!
Возникла задача разработать приложение (.Net, C#), которое могло бы для хранения данных использовать разные СУБД. Например, один пользователь использует MS SQL Server, другой — MySQL, третий — Firebird.
Первой мыслью было сделать интерфейс, описывающий требуемые методы для получения, добавления, удаления, модификации, поиска разных объектов (например, пользователи, документы, заявки и т.п) из БД. А затем для каждой СУБД сделать специализированный класс, реализующий данный интерфейс с учетом особенностей конкретной СУБД. Но при таком подходе в случае изменения интерфейса потребуется вносить изменения в классах, реализующих интерфейс. А это мне кажется не совсем правильно. К тому же реализация методов интерфейса в разных классах будет очень схожей, ведь структура таблиц будет одинаковой.
Подскажите, как правильно реализовать возможность работы приложения с разными СУБД?