ホームページ >データベース >mysql チュートリアル >手動キー入力で Entity Framework の自動生成キーを無効にする方法
Entity Framework の自動生成キーを手動入力でオーバーライドする
Entity Framework で主キーを手動で管理すると、フレームワークの自動 ID 生成を抑制しようとすると問題が発生する可能性があります。このガイドでは、この一般的な問題に対処します。
HasDatabaseGeneratedOption(DatabaseGeneratedOption.None)
を使用して EventID の自動生成を阻止しようとすると、問題が発生します。これは、SQL Server の IDENTITY_INSERT
設定と競合することがよくあります。
競合の解決:
この競合を解決するには、関連するテーブルに対して IDENTITY_INSERT
を有効にします。これにより、ID 値を手動で挿入できるようになります。 これを DbContext コンストラクターに実装します:
<code class="language-csharp">using (var connection = Db.Database.Connection) { var command = connection.CreateCommand(); command.CommandText = "SET IDENTITY_INSERT Events ON"; command.ExecuteNonQuery(); }</code>
属性ベースのキー構成:
あるいは、構成に属性を使用します。 次の属性を EventID
プロパティに適用します:
<code class="language-csharp">[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
このアプローチは、Entity Framework 6 と Entity Framework Core の両方で同様に機能します。
これらの変更を組み込むことで、主キーの自動生成を効果的に無効にし、イベント エンティティの値を手動で管理できます。
以上が手動キー入力で Entity Framework の自動生成キーを無効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。