0

我想要两个实体之间的直接外键关系,EF 属性是双向的。但是,目前 EF 正在生成 2 个表示关系每个方向的外键。如何让 EF 将它们视为单一属性?下面生成两个数据库外键约束,分别命名为 Script_ScriptRuns 和 ScriptRun_Script,分别使用外键字段 Script_Id 和 Script_Id1

public class Script
{
    [Key]
    public Guid Id { get; set; }

    public virtual ICollection<ScriptRun> ScriptRuns { get; set; }
}


public class ScriptRun
{
    [Key]
    public Guid Id { get; set; }

    [Required]
    public virtual Script Script { get; set; }
}
4

1 回答 1

1

使用您发布的代码,它只为我创建了一个 FK - 类中的 Script_Id ScriptRun

您是否只是想重命名在该类中创建的 FK?您可以通过映射 DbContext 中的列来做到这一点。这会将其映射到 ScriptId:

        modelBuilder.Entity<Script>()
            .HasMany(s => s.ScriptRuns)
            .WithRequired(sc => sc.Script)
            .Map(x => x.MapKey("ScriptId"));

如果没有,您可以发布您的整个模型吗?

于 2012-08-13T13:32:11.963 回答