1

EF6 Code First で作成した DB があります。一部のテーブルには ID 列があります。OLD Id 値を持つこれらのテーブルにいくつかのレコードを挿入する必要があります。このリンクHow to switch between DatabaseGeneratedOption.Identity...に表示されているソリューションを試しましたが、ID列ではなく、計算オプションとなしオプションを切り替える方法を示しています。これを実行しようとすると、次のエラー メッセージが表示されました。これを解決する方法はありますか?

4

1 に答える 1

2

あなたが直面している問題は、EF が明示的な ID 値を DBMS に送信することですが、IDENTITY_INSERT がオフに設定されている間は何も期待されません。

さらに次のことを行う必要があります: context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT Links ON");

これにより、DBMS は明示的な値も受け入れるようになります。これを機能させるには、このコマンドと (少なくとも) SaveChanges() を 1 つのトランザクションにラップする必要があります。

于 2016-04-24T15:27:48.797 に答える