2016-09-20 6 views
1

移行でEntity Frameworkコードファーストを使用しています。私たちは問題なく走っています。古いデータベースのデータを新しいデータベースに移行しようとしています。データベースを削除し、すべてのテーブルを作成し、データを挿入して、主キーと外部キーを追加する必要があります。 EFでこれを実行して、移行するデータをフォーマットすることができます。私たちはデータベースを作成してからデータを移行することに成功しましたが、古いデータベースにある主キーは引き継がれません。私はbulkinsert前ExecuteSqlCommandを使用して試してみた:Entity Frameworkコードの最初の移行とデータ移行

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

が、移行sciptsがtrueに設定さidenity持っているので、これは動作しません:

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

をするIDを設定する方法はありますfalseの場合、データがデータベースに挿入された後、IDをtrueに設定しますか?

答えて

1

これは正しい方法で実行しています(IDはIDであり、IDの挿入を有効にします)。 SET IDENTITY_INSERT ONはセッション(接続)に対してのみ有効であるため、1つの接続のみを使用する必要があります。
また、INSERTステートメント(EF SaveChangesではなく)を使用してデータベースをシードする必要があります。

関連する問題