Entity Framework を使用した主キーの手動指定
Entity Framework は通常、主キーを自動生成しますが、キー値を手動で割り当てる必要がある状況が発生する場合があります。 自動インクリメントが有効になっている場合、これにより競合が発生することがよくあります。 これを管理する方法は次のとおりです:
Entity Framework が主キーを自動的に生成しないようにするには、Fluent API またはデータ アノテーションを使用できます。
方法 1: Fluent API
このアプローチでは、モデル ビルダーが変更されます。
<code class="language-csharp">modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>
「IDENTITY_INSERT が OFF に設定されている場合、テーブル 'Events' の ID 列に明示的な値を挿入できません」というエラーが発生した場合は、データベース設定を調整する必要があります。
方法 2: データの注釈
または、エンティティ クラスで属性を直接使用することもできます。
<code class="language-csharp">[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
どちらの方法でも同じ結果が得られます。つまり、EventID
列の自動インクリメントが無効になり、Events
テーブルにデータを挿入するときにキー値を直接指定できるようになります。 必ず 1 つの方法を選択し、それを一貫して適用してください。 両方を同時に使用すると、競合が発生する可能性があります。
以上がEntity Framework テーブルにキーを手動で入力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。