尝试通过 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; }
区域类包含以下内容:
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
?
其次,我怎么知道是在Relationship实体、Area实体还是Both上设置Fluent API?
我得到的错误:
ALTER TABLE 语句与 FOREIGN KEY 约束“FK_dbo.Relationship_dbo.Area_AreaId”冲突。冲突发生在数据库“db”、表“dbo.Area”、列“AreaId”中。
这是怎么回事?