0

EFプロパティが双方向に機能する、2つのエンティティ間の直接的な外部キー関係が必要です。ただし、現時点では、EFは関係の各方向を表す2つの外部キーを生成しています。EFにそれらを単一のプロパティとして処理させるにはどうすればよいですか?以下は、外部キーフィールドScript_IdとScript_Id1をそれぞれ使用して、Script_ScriptRunsとScriptRun_Scriptという名前の2つのデータベース外部キー制約を生成します。

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

投稿したコードを使用すると、クラス内の Script_Id という単一の FK のみが作成されました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 に答える