ホームページ > データベース > mysql チュートリアル > Entity Framework で主キーを手動で設定するときに発生する「ID 列に明示的な値を挿入できません」エラーを回避する方法

Entity Framework で主キーを手動で設定するときに発生する「ID 列に明示的な値を挿入できません」エラーを回避する方法

Patricia Arquette
リリース: 2025-01-15 19:07:43
オリジナル
228 人が閲覧しました

How to Avoid

Entity Framework での手動主キー入力の問題への対処

Entity Framework で主キーを手動で割り当てると、データベースで生成されたキー エラーが発生する可能性があります。この記事では、属性を使用してこれらの問題を回避する解決策の概要を説明します。

[NotMapped] 属性を直接使用することは推奨されません。 DatabaseGeneratedOption.None は自動キー生成を防ぐための実行可能な代替手段のように見えますが、多くの場合、「ID 列に明示的な値を挿入できません」というエラーがスローされます。

この解決策には、IDENTITY_INSERT テーブル オプションを使用して ID 列への明示的な挿入を有効にすることが含まれます。

<code class="language-sql">ALTER TABLE Event SET IDENTITY_INSERT ON;</code>
ログイン後にコピー

これにより競合が解決されます。 あるいは、属性を使用すると、よりクリーンなアプローチが提供されます。

<code class="language-csharp">using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int EventID { get; set; }</code>
ログイン後にコピー

この属性ベースのメソッドは Entity Framework Core と互換性があります。 DatabaseGeneratedOption.None または属性アプローチを採用することで、開発者は Entity Framework 内で手動の主キー割り当てを効果的に管理できます。

以上がEntity Framework で主キーを手動で設定するときに発生する「ID 列に明示的な値を挿入できません」エラーを回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート