C# ASP.NET MVC将一个实体主键关系映射到另一个实体上的两列作为外键

C# ASP.NET MVC将一个实体主键关系映射到另一个实体上的两列作为外键,c#,entity-framework,asp.net-mvc-5,C#,Entity Framework,Asp.net Mvc 5,我有以下两种型号 分类账.cs public class Ledger { [Key] public int ID { get; set; } [Display(Name = "Name")] [StringLength(50)] [Required(ErrorMessage = "Ledger name can not be empty")] public string NAME { get; set; } [ForeignKey("

我有以下两种型号

分类账.cs

public class Ledger
{
    [Key]
    public int ID { get; set; }

    [Display(Name = "Name")]
    [StringLength(50)]
    [Required(ErrorMessage = "Ledger name can not be empty")]
    public string NAME { get; set; }

    [ForeignKey("MasterGroup")]
    [Display(Name = "Group")]
    [Required(ErrorMessage = "Group can not be empty")]
    public int GROUPID { get; set; }

    [Display(Name = "Category")]
    [StringLength(50)]
    [Required(ErrorMessage = "Category can not be empty")]
    public string CATEGORY { get; set; }

    [Display(Name = "Short Code")]
    [Required(ErrorMessage = "Short code can not be empty")]
    [StringLength(50)]
    public string SHORTCODE { get; set; }

    [ScaffoldColumn(false)]
    public DateTime CREATE_TIMESTAMP { get; set; }
    [ScaffoldColumn(false)]
    public DateTime LAST_EDIT_TIMESTAMP { get; set; }

    public virtual MasterGroup MasterGroup { get; set; }

    public List<Voucher> DrLedger { get; set; }
    public List<Voucher> CrLedger { get; set; }
}
public class Voucher
{
    [Key]
    public int ID { get; set; }

    [Display(Name = "Date")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    [Required]
    public DateTime DATE { get; set; }

    [Required]
    [Display(Name = "Party")]

    public int DRPARTYID { get; set; }

    [Required]
    [Display(Name = "Party")]

    public int CRPARTYID { get; set; }

    [Required]
    [Display(Name = "Amount")]
    public decimal AMOUNT { get; set; }

    [Display(Name = "Narration")]
    public string NARRATION { get; set; }

    [ScaffoldColumn(false)]
    [ForeignKey("MasterUser")]
    public string USERPASSWORD { get; set; }

    [ScaffoldColumn(false)]
    public DateTime CREATE_TIMESTAMP { get; set; }
    [ScaffoldColumn(false)]
    public DateTime LAST_EDIT_TIMESTAMP { get; set; }

    public virtual MasterUser MasterUser { get; set; }


    [ForeignKey("DRPARTYID")]
    public virtual Ledger DrLedger { get; set; }


    [ForeignKey("CRPARTYID")]
    public virtual Ledger CrLedger { get; set; }
}
我想在这两个实体之间创建FK关系

分类账的
ID
列作为主键将两次指向
凭证的
DRPARTYID
CRPARTYID
作为两个外键关系

我得到了以下迁移代码,我不希望从中生成FK

迁移代码

public partial class AddedVoucherModelAndFKRelationsWithOtherModels : DbMigration
{
    public override void Up()
    {
        CreateTable(
            "dbo.Voucher",
            c => new
                {
                    ID = c.Int(nullable: false, identity: true),
                    DATE = c.DateTime(nullable: false),
                    DRPARTYID = c.Int(nullable: false),
                    CRPARTYID = c.Int(nullable: false),
                    AMOUNT = c.Decimal(nullable: false, precision: 18, scale: 2),
                    NARRATION = c.String(),
                    USERPASSWORD = c.String(maxLength: 50),
                    CREATE_TIMESTAMP = c.DateTime(nullable: false),
                    LAST_EDIT_TIMESTAMP = c.DateTime(nullable: false),
                    Ledger_ID = c.Int(),//THIS SHOULD NOT BE GENERATED
                })
            .PrimaryKey(t => t.ID)
            .ForeignKey("dbo.Ledger", t => t.CRPARTYID, cascadeDelete: true)
            .ForeignKey("dbo.Ledger", t => t.DRPARTYID, cascadeDelete: true)
            .ForeignKey("dbo.MasterUser", t => t.USERPASSWORD)
            .ForeignKey("dbo.Ledger", t => t.Ledger_ID)
            .Index(t => t.DRPARTYID)
            .Index(t => t.CRPARTYID)
            .Index(t => t.USERPASSWORD)
            .Index(t => t.Ledger_ID);

    }

    public override void Down()
    {
        DropForeignKey("dbo.Voucher", "Ledger_ID", "dbo.Ledger");
        DropForeignKey("dbo.Voucher", "USERPASSWORD", "dbo.MasterUser");
        DropForeignKey("dbo.Voucher", "DRPARTYID", "dbo.Ledger");
        DropForeignKey("dbo.Voucher", "CRPARTYID", "dbo.Ledger");
        DropIndex("dbo.Voucher", new[] { "Ledger_ID" });
        DropIndex("dbo.Voucher", new[] { "USERPASSWORD" });
        DropIndex("dbo.Voucher", new[] { "CRPARTYID" });
        DropIndex("dbo.Voucher", new[] { "DRPARTYID" });
        DropTable("dbo.Voucher");
    }
}
如何将一个实体的单列作为指定列上的PK FK关系连接到另一实体的两列