Entity Framework: 手動主キー割り当ての習得と ID 列エラーのトラブルシューティング
このガイドでは、Entity Framework データベース管理システム内で主キーを手動で定義する際の複雑さを扱います。 EF の自動キー生成の無効化と、明示的なキー値の割り当てに関連する一般的なエラーの解決について説明します。
Entity Framework (EF) は通常、主キーの生成を自動的に処理します。この動作をオーバーライドして独自のキーを指定するには、DatabaseGeneratedOption
プロパティを使用して None
に設定します。 これは、属性または Fluent API を使用して実現できます。
方法 1: 属性ベースの構成
<code class="language-csharp">[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
方法 2: スムーズな API 構成
<code class="language-csharp">modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>
自動キー生成を無効にすると、多くの場合、ID 列に関するエラーが発生します。 これは通常、関連するテーブルに対して IDENTITY_INSERT
が無効になっているために発生します。これを解決するには、IDENTITY_INSERT
を一時的に有効にして ID 列への明示的な値の挿入を許可します。
重要な注意事項: IDENTITY_INSERT
を有効にすると、潜在的なデータ整合性リスクが伴うため、絶対に必要な場合にのみ慎重に使用する必要があります。 このソリューションを実装する前に、その影響を慎重に検討してください。
以上がEntity Framework で主キーを手動で設定し、ID 列エラーをトラブルシューティングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。