Я создаю приложение, которое первоначально будет использовать SQLServer 2008 в качестве СУБД.Как я должен структурировать свое приложение так, чтобы на более позднем этапе я мог использовать другую СУБД, например Oracle, без изменения своего кода, т.е. только через конфигурацию.
Я подозреваю, что мое основное приложение будет вызывать код в сборке / слоеон инкапсулирует все вызовы базы данных, необходимые для работы приложения.Этот уровень затем вызовет уровень, специфичный для СУБД (на основе конфигурации), чтобы сделать фактический вызов БД?Может кто-нибудь указать мне на четкий пример этого?
Спасибо!
Добавил объяснение ниже:
Я думал, что у меня может быть несколько сборок, например, MyApp, MyApp.База данных, MyApp.Database.SQLServer, MyApp.Database.Oracle и т. Д.
MyApp сделает вызов, подобный:
DataSet ds = MyApp.Database.GetSomeData();
... который выглядит как ...
public DataSet MyApp.Database.GetSomeData()
{
return GetDataFromDBMS();
}
GetSomeData - это общий вызов, т. Е. MyApp для выполнения каких-либо действий требуется «GetSomeData ()».Не имеет значения, откуда берутся данные.
Тогда GetDataFromDBMS узнает через файл конфигурации, что нужно вызвать MyApp.Database.SQLServer.GetTheData () ИЛИ MyApp.Database.Oracle.GetTheData ().,Эти методы могут делать все, что требуется для получения / обработки данных из каждой СУБД.