C# 实体框架fluent api使用非父项的外键将子项映射到父项';身份证

C# 实体框架fluent api使用非父项的外键将子项映射到父项';身份证,c#,.net,entity-framework,ef-fluent-api,C#,.net,Entity Framework,Ef Fluent Api,我想映射子类,但子对象上的外键不是程序类上的ID。如何使用EF fluent API定义此关系?下面是我的课程 public class Program { public int Id { get; set; } public string ProgramNumber { get; set; } public List<Child> Children { get; set; } } public class C

我想映射子类,但子对象上的外键不是
程序
类上的ID。如何使用EF fluent API定义此关系?下面是我的课程

public class Program
    {
        public int Id { get; set; }
        public string ProgramNumber { get; set; }
        public List<Child> Children { get; set; }
    }

    public class Child
    {
        public int Id { get; set;}
        public string ProgramNumber { get; set; }
    }

    internal class ProgramMapping : EntityTypeConfiguration<Program>
    {
        public ProgramMapping()
        {
            ToTable("PROGRAMS");

            HasKey(t => t.Id);

            Property(t => t.Id).HasColumnName("ID");
            Property(t => t.ProgramNumber).HasColumnName("PROGRAM_NUMBER");
        }
    }

    internal class ChildMapping : EntityTypeConfiguration<Child>
    {
        public ChildMapping()
        {
            ToTable("CHILDREN");

            HasKey(t => t.Id);

            Property(t => t.Id).HasColumnName("ID");
            Property(t => t.ProgramNumber).HasColumnName("PROGRAM_NUMBER");
        }
    }
公共类程序
{
公共int Id{get;set;}
公共字符串ProgramNumber{get;set;}
公共列表子项{get;set;}
}
公营儿童
{
公共int Id{get;set;}
公共字符串ProgramNumber{get;set;}
}
内部类程序映射:EntityTypeConfiguration
{
公共程序映射()
{
ToTable(“程序”);
HasKey(t=>t.Id);
属性(t=>t.Id);
属性(t=>t.ProgramNumber).HasColumnName(“PROGRAM_NUMBER”);
}
}
内部类ChildMapping:EntityTypeConfiguration
{
公共子映射()
{
可折叠(“儿童”);
HasKey(t=>t.Id);
属性(t=>t.Id);
属性(t=>t.ProgramNumber).HasColumnName(“PROGRAM_NUMBER”);
}
}

在EF6中不能执行任何操作。看起来这在core中是可能的:在EF6中不可能。看起来在core中是可能的: