自作 SRPG ゲームのデータを、 Entity Framework の Code-First でデータベースに保存しています。テーブルは Character, Item, Weapon, Equipment などです(中身は名前から想像できるようなもの)。

概ね順調に実装できていたのですが 1 点どうしても解決できません。

それは SaveChanges() を呼ぶまでオートインクリメントの ID が発番されず 0 のままな事です。 SRPG の場合は途中でセーブしないためゲーム中はすべて .Local キャッシュに対してのみ読み/書き/挿入/削除します。そうすると途中で入手したアイテムをデータベースに挿入しても ID=0 のままになり一意なアイテムID を期待するプログラムから (セーブするまで)利用できません。このまま削除できないことがあると一番困ります。

ゲームで Entity Framework を利用するときに誰もが困ると思うのですが、どのような解決方法が考えられるでしょうか。