1

We are using Entity Framework Code First with Migrations. We have it running without any issues. We are trying to migrate data from an old database to the new. We need to drop the database, create all the tables, insert the data and then add in the primary keys and foreign keys. We want to do this in EF so that we can format the data being migrated. We have been successful in creating the database and then migrating the data over but the primary keys are in the old database are not coming over. I've tried using the ExecuteSqlCommand before a bulkinsert:

ctx.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[TableName] ON");

but this does not work because the migration scipts have the idenity set to true:

Id = c.Int(nullable: false, identity: true),

Is there a way to set the identity to false then after the data is inserted into the database, set the identity to true?

1 Answer 1

1

You are doing it in the right way (Id is an identity and you enable identity insert). SET IDENTITY_INSERT ON is valid only for the session (the connection) so you need to use only one connection.
Also, you have to seed the database using INSERT statements (and not EF SaveChanges).

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.