Вопрос

Как я могу абстрагировать свою базу данных от своего приложения, чтобы оно не знало о типе базы данных?Мне нужно разработать приложение .Net 3.5 WPF, которое должно поддерживать SQL Server или Visual FoxPro в качестве хранилища данных.

Мои цели в дизайне:

  1. сделать тип хранилища данных невидимым при написании кода на уровне доступа к данным
  2. сделать переключение между SQL и FoxPro максимально быстрым и безболезненным
  3. разрешить использование как ANSI SQL, так и хранимых процедур из DAL
  4. кривая обучения должна быть минимальной для того, чтобы другие разработчики присоединились к проекту

Это будет приложение WPF, возможно, использующее CSLA.

Я думал об использовании какого-нибудь ORM, но у меня нет опыта работы с технологиями такого типа.

Это было полезно?

Решение

Многие ORM не зависят от типа базы данных, хотя требования FoxPro могут ограничить ваш выбор или потребовать от вас написания собственного поставщика или адаптера.

Если вы хотите, чтобы ваше приложение могло работать с несколькими типами баз данных, например, посредством конфигурации, вы также должны следить за тем, чтобы ваши схемы в каждой базе данных были совместимыми и чтобы вы не зависели от функций, которые не реализованы ни в одной из баз данных. баз данных или в выбранном вами ORM.

ORM, с которым я наиболее знаком, LLBLGen Pro, поддерживает 5 или 6 серверных баз данных, но FoxPro официально не поддерживается.В какой-то момент клиент предоставил адаптер FoxPro.Я не знаю, сохранилось ли оно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top