我想要两个实体之间直接的外键关系,EF属性是双向的。但是,此时EF正在生成表示关系的每个方向的2个外键。如何让EF将它们视为单一财产?下面分别使用外键字段Script_Id和Script_Id1生成两个名为Script_ScriptRuns和ScriptRun_Script的数据库外键约束
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; }
}
答案 0 :(得分:1)
使用您发布的代码,它只为我创建了一个FK - ScriptRun
类中的Script_Id。
您是否只想重命名在该课程中创建的FK?您可以通过映射DbContext中的列来实现。这会将它映射到ScriptId:
modelBuilder.Entity<Script>()
.HasMany(s => s.ScriptRuns)
.WithRequired(sc => sc.Script)
.Map(x => x.MapKey("ScriptId"));
如果没有,你可以张贴整个模型吗?