あるデータベースから別のデータベースにデータを移行する必要があります。キーは保存する必要があります。自動生成された.dbmx
ファイルで EF を使用しています。同様の問題に対する多くの回答を読み、それらの提案に従いますIDENTITY_INSERT
。エントリを挿入する直前にオンにします。データベース図で、列StoreGeneratedPattern
をNone
オンに変更しました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 クエリをコピーして貼り付けると、問題なく動作します。