2016-09-20 2 views
1

우리는 마이그레이션시 Entity Framework Code First를 사용하고 있습니다. 우리는 아무 문제없이 달리고있다. 이전 데이터베이스의 데이터를 새 데이터베이스로 마이그레이션하려고합니다. 우리는 데이터베이스를 삭제하고, 모든 테이블을 생성하고, 데이터를 삽입 한 다음 기본 키와 외래 키를 추가해야합니다. EF에서이 작업을 수행하여 마이그레이션 할 데이터의 형식을 지정할 수 있습니다. 우리는 데이터베이스를 생성 한 다음 데이터를 마이그레이션하는 데 성공했지만 이전 데이터베이스에있는 기본 키가 오지는 않습니다. 나는 bulkinsert 전에 ExecuteSqlCommand를 사용하여 시도했다 :Entity Framework 코드 처음 마이그레이션 및 데이터 마이그레이션

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

을하지만 마이그레이션 scipts가 idenity이 true로 설정되어 있기 때문에이 작동하지 않습니다

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

에 ID를 설정하는 방법이 있나요 데이터가 데이터베이스에 삽입 된 후 false이면 ID를 true로 설정 하시겠습니까?

답변

1

올바른 방법으로 수행하고 있습니다 (ID는 ID이고 ID 삽입을 사용 가능하게 설정합니다). SET IDENTITY_INSERT ON은 세션 (연결)에만 유효하기 때문에 하나의 연결 만 사용해야합니다.
또한 EF SaveChanges가 아닌 INSERT 문을 사용하여 데이터베이스를 시드해야합니다.

관련 문제