質問: 私はPostgresプロバイダでEntity Framework Coreを使用していますが、各エンティティはValueGeneratedOnAddを持つint主キーを持っています。これまでは完璧に動作していました。今は毎回マイグレーションとデータベースを嫌い、 `dotnet ef migrations add InitialDb`新しいものを開始`dotnet ef migrations add InitialDb`ます。この最後のリフレッシュ後、私の主キーはint.Min - `-2147482647`と仮定して生成し始め`-2147482647` 。彼らは1時から始まっていました。 私はこれを引き起こしたのか分かりませんし、プライマリキーを1から増やすことに戻りたいと思います。これを達成する方法はありますか?
回答: この現象を引き起こしたコードで変更されたものが見つかりました。私のベースリポジトリで、新しいエンティティを追加するときに`DbContext.Set().Add(entity)`を変更しました`DbContext.Set().Add(entity)`に`DbContext.Attach(entity).State = EntityState.Added;` `DbContext.Set().Add(entity)` `DbContext.Attach(entity).State = EntityState.Added;` 私がこれをした理由は、EFを使用すると既存の関連エンティティを自動的に検出するためです。 addだけを使用すると、関連するエンティティをdbにすでに存在するかどうかにかかわらず、再び追加してみます。 IDを生成するときに突然それが負のintに切り替わる理由がわかりません。