Поиск рекомендаций по переносу данных в базу данных Entity Framework Code First. - PullRequest
1 голос
/ 15 февраля 2011

Я пытаюсь выяснить, как перенести данные из базы данных сервера SQL в базу данных платформы сущностей, которая сначала создается с кодом.

Исходная база данных не совсем соответствует схеме, поэтому у меня есть несколькокод, который будет выполнять миграцию.То, что я пытаюсь выяснить, - это лучший способ переместить данные и сохранить идентификаторы.У меня есть нулевые атрибуты, примененные к моей модели.Я просто использую соглашение modelnameID для свойства первичного ключа.

Должен ли я отключить создание идентификаторов, перенести данные, а затем снова включить их?Что происходит со следующим значением?Должен ли я отключить идентификацию навсегда и самостоятельно управлять идентификаторами?Любые другие предложения?

Редактировать: я использую SQL CE 4 для моей базы данных.

Ответы [ 2 ]

2 голосов
/ 16 февраля 2011

Вот код для этого.Вы не сможете использовать DBCC, но вы можете просто изменить свой столбец:

var connection = new SqlCeConnection(context.Database.Connection.ConnectionString);
connection.Open();
new SqlCeCommand("SET IDENTITY_INSERT [Songs] ON;", connection).ExecuteNonQuery();
SqlCeCommand command = new SqlCeCommand("INSERT INTO table values", connection);
new SqlCeCommand("SET IDENTITY_INSERT [Songs] OFF;", connection).ExecuteNonQuery();

new SqlCeCommand("ALTER TABLE Songs ALTER COLUMN SongID IDENTITY(100,1)", connection).ExecuteNonQuery();
0 голосов
/ 15 февраля 2011

Отключить генерацию идентификатора.

Передать данные.

Снова включить генерацию идентификатора.

Используйте reseed для установки значения следующего идентификатора, см .: http://msdn.microsoft.com/en-us/library/ms176057.aspx

...