ホームページ > バックエンド開発 > C++ > Entity Framework で主キー値を手動で設定する方法

Entity Framework で主キー値を手動で設定する方法

Patricia Arquette
リリース: 2025-01-14 06:59:45
オリジナル
502 人が閲覧しました

How to Manually Set Primary Key Values in Entity Framework?

Entity Framework: 手動主キー管理

Entity Framework (EF) は通常、主キー値を自動生成します。 ただし、主キーを手動で指定する必要がある状況が発生します。このガイドでは、これを実現する方法について詳しく説明します。

自動キー生成の無効化

主キーの手動入力を有効にするには、OnModelCreating メソッドを次のように変更します。

<code class="language-csharp">modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>
ログイン後にコピー

ID 列の競合への対処

テーブルの IDENTITY_INSERT プロパティが OFF に設定されている場合、「ID 列は明示的な値を挿入できません」というエラーが発生します。 これを修正するには、データを挿入する前に一時的に IDENTITY_INSERTON に設定します。

属性ベースの構成

または、属性を使用してクラス内で直接主要なプロパティを定義します。

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

このメソッドは OnModelCreating の変更を回避し、EF Core と互換性があります。

更新された POCO クラスの例

次の POCO クラスは、属性ベースのアプローチを示しています。

<code class="language-csharp">public class Event
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int EventID { get; set; }

    public string EventType { get; set; } 
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }

    public virtual ICollection<Match> Matches { get; set; }
    public virtual ICollection<EventParticipation> EventParticipation { get; set; }
}</code>
ログイン後にコピー

このアプローチは、EF モデルで手動で設定された主キーを管理するための、よりクリーンで保守しやすいソリューションを提供します。

以上がEntity Framework で主キー値を手動で設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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