Резервное копирование сложных данных SQL Server 2008 в SQL Server Compact Edition (sqlce) - PullRequest
2 голосов
/ 17 февраля 2011

Я пытаюсь создать класс .net, чтобы сделать аварийное резервное копирование некоторых важных данных в SQL Server Compact Edition.Это не большой объем данных, но он имеет довольно сложную структуру данных (30 с лишним таблиц со значительными перекрестными ссылками).Мы используем Entity Framework для выполнения большей части нашей работы с данными.

Документация по работе с sqlce и .net кажется немного тонкой на местах, и в настоящее время я немного борюсь.Я создал файл базы данных (.sdf) достаточно легко, но в идеале я хотел бы иметь возможность указать, где этот файл находится, а не создавать его по умолчанию (C: \ Program Files (x86) \ Common Files \ microsoftрасшарил \ DevServer \ 10.0 в моем случае).Возможно ли это, и если да, то как?

Что более важно, я обеспокоен тем, что мне придется заново создавать все 30+ таблиц, которые не только нелепо трудоемки, но и не очень масштабируемы.Есть ли способ - предпочтительно с использованием Entity Framework - чтобы получить подмножество данных, которые мне нужны, из нашей центральной базы данных и вставить их в чистую базу данных SqlCE, чтобы он автоматически создавал необходимые таблицы?1007 *

Ответы [ 2 ]

1 голос
/ 19 февраля 2011

Вы можете использовать мою утилиту командной строки Export2sqlce для создания сценария для всей базы данных сервера в SQL-совместимом сценарии SQL: http://exportsqlce.codeplex.com

1 голос
/ 17 февраля 2011

1) Вы можете создать сценарий с помощью Entity Framework, но он может быть доступен только в VS 2010. Просто щелкните правой кнопкой мыши в модели EF и выберите «Создать базу данных из модели».Затем вы можете подключиться к базе данных и запустить скрипт для генерации таблиц.Имейте в виду, что это также изменит ваши ассоциации в EF для этой модели и «подключите» ее к новой базе данных.

1) a] Вы всегда можете создать скрипт в SQL Server, используя существующую базу данных.Просто отсканируйте базу данных и выберите все таблицы, ограничения, триггеры и т. Д.

2) Возможно, вы захотите проверить, какие типы данных доступны в SQL CE.Если я правильно помню, некоторые типы данных не существуют в CE.

...