自作 SRPG ゲームのデータを、 Entity Framework の Code-First でデータベースに保存しています。テーブルは Character
, Item
, Weapon
, Equipment
などです(中身は名前から想像できるようなもの)。
概ね順調に実装できていたのですが 1 点どうしても解決できません。
それは SaveChanges()
を呼ぶまでオートインクリメントの ID が発番されず 0
のままな事です。
SRPG の場合は途中でセーブしないためゲーム中はすべて .Local
キャッシュに対してのみ読み/書き/挿入/削除します。そうすると途中で入手したアイテムをデータベースに挿入しても ID=0
のままになり一意なアイテムID を期待するプログラムから (セーブするまで)利用できません。このまま削除できないことがあると一番困ります。
ゲームで Entity Framework を利用するときに誰もが困ると思うのですが、どのような解決方法が考えられるでしょうか。