0

EF Code-First を介して既存のテーブルに別の FK を追加しようとしています。

流暢な API:

  modelBuilder.Entity<Relationship>()
       .HasRequired(c => c.Area)
       .WithMany(d => d.Relationships)
       .HasForeignKey(u => u.AreaId);

リレーションシップ クラスには次のものが含まれます。

    [Required]
    public virtual Area Area { get; set; }
    public int AreaId { get; set; }

Area クラスには以下が含まれます。

    public virtual ICollection<Relationship> Relationships { get; set; }

PM コンソールからの出力:

  ALTER TABLE [dbo].[Relationship] ADD [AreaId] [int] NOT NULL DEFAULT 0
  ALTER TABLE [dbo].[Relationship] ADD CONSTRAINT [FK_dbo.Relationship_dbo.Area_AreaId] FOREIGN KEY ([AreaId]) REFERENCES [dbo].[Area] ([AreaId])

まず、とはArea_AreaId

第 2 に、Fluent API を Relationship エンティティ、Area エンティティ、またはその両方に設定するかどうかを知るにはどうすればよいですか?

私が得るエラー:

ALTER TABLE ステートメントが FOREIGN KEY 制約 "FK_dbo.Relationship_dbo.Area_AreaId" と競合しました。データベース「db」、テーブル「dbo.Area」、列「AreaId」で競合が発生しました。

どうしたの?

4

1 に答える 1