1

あるデータベースから別のデータベースにデータを移行する必要があります。キーは保存する必要があります。自動生成された.dbmxファイルで EF を使用しています。同様の問題に対する多くの回答を読み、それらの提案に従いますIDENTITY_INSERT。エントリを挿入する直前にオンにします。データベース図で、列StoreGeneratedPatternNoneオンに変更しましたId(対応する属性をプロパティに追加して同じことを試みましたId)。

これが私のコードです:

var myEntity = new MyTable
{
    Id = 12345,
    Name = "Lorem ipsum",
    BrandId = brandId,      
};

MyContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT MY_TABLE_NAME ON");
MyContext.MyTable.Add(myEntity);
await MyContext.SaveChangesAsync(); //getting error here

Management Studio でそれを行うと、問題なく動作します。この問題は、Entity Framework を使用している場合にのみ発生します。

INSERT_IDENTITYコマンドが実行され、挿入SQLがId列に付属しているSQL Server Profilerで見ることができるのは奇妙に見えますが、実行されていないようです。この SQL クエリをコピーして貼り付けると、問題なく動作します。

4

1 に答える 1