このクエリを実行します。
context.Database.SqlCommand("SET IDENTITY_INSERT [Songs] ON;");
.Add()
からメソッドを実行する直前DbSet
。
私のデータは、提供している ID の代わりに ID 値を使用しています。
これは一時的に(データ移行のために)のみ必要であり、将来的には自動生成された ID のままにする必要があります。
データベースに SQL Server CE 4 を使用しています。
このクエリを実行します。
context.Database.SqlCommand("SET IDENTITY_INSERT [Songs] ON;");
.Add()
からメソッドを実行する直前DbSet
。
私のデータは、提供している ID の代わりに ID 値を使用しています。
これは一時的に(データ移行のために)のみ必要であり、将来的には自動生成された ID のままにする必要があります。
データベースに SQL Server CE 4 を使用しています。
これは問題になる可能性があります。DbContext
データベース接続自体を処理します。これは、ID 挿入をオンにするのと同じ接続で挿入が実行される場合にのみ機能します。このコマンドの後に接続を解放すると思います。別の DbContext のコンストラクターを使用して、独自の開いているDbConnection
インスタンスを渡し、そのクローズを自分で処理することができます。
EF は、ユーザーが IDENTITY_SET コマンドを実行したことを推測して、それに応じて内部ロジックを変更することはできません。
特定の Id 値を挿入する必要がある場合は、挿入にも SqlCommand を使用します。