2014-01-31 4 views
0

Я разрабатываю приложение, которое отличает существующую базу данных и файл резервной копии (.bak). Когда вы обычно подключаете и извлекаете данные с SQL Server, я предпочитаю использовать Linq, так как мне легче использовать это при построении запросов.Рекомендации по восстановлению баз данных

В этом случае я не вижу, как я могу это сделать, моя процедура заключается в том, что я строю строку с запросом SQL для восстановления базы данных (из файла .bak), а затем извлекает любые данные, которые отличаются от текущего , с этим.

Все запросы, которые я использую, являются строками, которые я форматирует для добавления имени и схемы базы данных. Строки, которые я использую, становятся довольно большими, и я нахожу, что он очень загромождает (мне нравится чистый код).

Структура баз данных одинакова и никогда не меняется между различными резервными копиями или реальной сделкой. Новые резервные копии приходят каждый день, и их необходимо проверять, поэтому на самом деле не стоит входить и добавлять новый файл подключения каждый раз, когда есть новая резервная копия.

Есть ли способ восстановить базу данных с помощью Linq, а затем получить данные с помощью запросов Linq? Или я делаю это так, как должен?

ответ

0

Вы можете использовать Linq для запросов, так что вы не можете использовать его для восстановления базы данных.

Кроме того, вы не можете использовать разные базы данных в одном и том же запросе Linq, однако вы можете материализовать результаты каждого запроса в базе данных и сделать третий запрос Linq на основе них, как вы можете видеть в this answer.

+0

Так что, если я могу создать базу данных с помощью обычного запроса, могу ли я использовать Linq для получения данных? – Sander

+0

Да, но вам понадобится контекст, связанный с резервной базой данных. Вы можете либо создать два, по одному для каждой базы данных, а затем динамически выполнить восстановление (таким образом, изменив содержимое соответствующей восстановленной базы данных) или, возможно, вы сможете каким-то образом повторно использовать контекст, просто указав на свою резервную базу данных (поскольку схема - это одна и та же). Я не уверен, что вы можете просто выполнить последнее, используя другую строку соединения, указывающую на базу данных восстановления. – jnovo

Смежные вопросы