Скопируйте данные базы данных в новую базу данных с LinqToSql - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть база данных SQL CE в моем приложении для Windows Phone.Я решил, что мне нужно защитить базу данных, как показано здесь .Проблема в том, что база данных изначально создавалась без пароля, а значит, не шифровала его.Я хотел бы переместить все данные в новую зашифрованную базу данных.

Каков наилучший способ переноса данных и сохранения отношений?Я пытался сделать это (база данных - это новая база данных, а контекст - старая)

db.Groups.InsertAllOnSubmit(context.Groups);

, но выдает ошибку

Была предпринята попытка присоединить или добавитьобъект, который не является новым, возможно, был загружен из другого DataContext.Это не поддерживается.

Нужно ли вручную вращать каждый объект, создавать их в новой базе данных, а затем выполнять поиск, чтобы связать сущности?

Ответы [ 2 ]

1 голос
/ 23 декабря 2011

Попробуйте использовать AttachAll вместо InsertInsertAllOnSubmit:

db.Groups.AttachAll(context.Groups);
1 голос
/ 23 декабря 2011

Вы должны использовать внешние инструменты для миграции базы данных.Вы можете создать сценарий sql для создания структуры базы данных, а затем использовать инструмент «Импорт и экспорт данных» для копирования данных в новую базу данных.Я бы не стал делать это программно.

...