Entity Framework 6 tabela múltipla para um código de relação de chave estrangeira primeiro

Eu estou querendo saber se alguém poderia me aconselhar sobre como realizar o código abaixo usando primeiro em EF6

Se eu adicionar o Table_3 como uma lista para Table_1 e Table_2 em minhas entidades. O EF gera automaticamente uma coluna de chave estrangeira para as duas tabelas em Table_3, em vez de reconhecer que são do mesmo tipo.

Minhas classes de modelo são definidas da seguinte maneira.

public interface IParent
{
    int ID { get; set; }
    List<Table_3> Children { get; set; }
}

public class Table_1 : IParent
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual List<Table_3> Children { get; set; }
}

public class Table_2 : IParent
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual List<Table_3> Children { get; set; }
}

public class Table_3
{
    [Key]
    public int ID { get; set; }
    public int ParentID { get; set; }
    [ForeignKey("ParentID")]
    public virtual IParent Parent { get; set; }
}

O código EF gera primeiro o abaixo

Editar

Só para deixar alguém com os mesmos problemas saber

Eu já resolvi isso alterando a interface IParent para uma classe abstrata minhas classes agora se parecem com o seguinte

[Table("ParentBase")]
public abstract class ParentBase
{
    [Key]
    public int ID { get; set; }
    public List<Table_3> Children { get; set; }
}
[Table("Table_1")]
public class Table_1 : ParentBase
{
    public string Name { get; set; }
}
[Table("Table_2")]
public class Table_2 : ParentBase
{
    public string Name { get; set; }
}
[Table("Table_3")]
public class Table_3
{
    [Key]
    public int ID { get; set; }
    public int ParentID { get; set; }
    [ForeignKey("ParentID")]
    public virtual ParentBase Parent { get; set; }
}

com um arranjo de mesa de

isso funcionará, embora tenha sido melhor se o original pudesse ter sido atendido.

questionAnswers(2)

yourAnswerToTheQuestion