Как мое приложение может одновременно использовать базу данных MS Access и базу данных SQL Server? - PullRequest
2 голосов
/ 10 февраля 2010

Какие стратегии и методы вы использовали для создания приложения, управляемого данными, которому необходим доступ к нескольким различным источникам данных? В частности, Microsoft Access и SQL Server. В идеале я хотел бы создать уровень абстракции, который скрывает физический источник данных от приложения.

Что-то вроде ADO.NET Entity Framework было бы идеально, но у него нет поставщика MS Access. Существует ли другая структура или методика, которая поддерживает одновременные подключения Access и SQL Server?

Сколько бы работало, чтобы создать поставщика доступа для Entity Framework?

Ответы [ 4 ]

1 голос
/ 25 февраля 2010

Другой подход заключается в создании связанных серверов в SQL Server, выполнении объединений с использованием представлений в SQL Server и полностью скрытии того факта, что в вашем приложении несколько источников данных.

1 голос
/ 10 февраля 2010

Я уверен, что LLBLGen поддерживает Access (и, конечно, он поддерживает MS SQL). Это стоит денег, хотя, ИМХО, это лучший OR / M для .NET.

0 голосов
/ 25 февраля 2010

Насколько я знаю, есть только два варианта:

  1. Несколько строк подключения
  2. Одна строка подключения.

В первом сценарии вы объединяете любые необходимые данные из разнородных источников в коде среднего уровня. Во втором сценарии вы получаете доступ ко всем источникам, кроме одного, через один источник. Например, вы должны получать данные из Access через связанный сервер в SQL Server.

У каждого из них есть свои преимущества и недостатки. Использование одной строки подключения, безусловно, проще для кода на среднем уровне. В конечном итоге это зависит от необходимости двух источников. Если один просто для регистрации, например, то две строки подключения могут быть проще. Если необходимы объединения и тому подобное, использование связанного сервера может быть проще в зависимости от источников. Если одним из источников является Access, и вы не используете безопасность доступа, то использование связанного сервера может нормально работать в зависимости от масштаба. Если вы используете безопасность доступа и у вас есть разные учетные записи, которым требуется доступ к базе данных, тогда использование связанного сервера будет проблемой.

0 голосов
/ 10 февраля 2010

Посмотрите на NHibernate. У него есть провайдеры для SQL Server и Access (и других).

...