Entity Framework 6 tabla múltiple a un código de relación de clave externa primero

Me pregunto si alguien podría aconsejarme sobre cómo lograr lo siguiente utilizando el código primero en EF6

Si agrego el Table_3 como una Lista a Table_1 & Table_2 en mis entidades. EF genera automáticamente una columna de clave externa para ambas tablas en la Tabla_3 en lugar de reconocer que son del mismo tipo.

Mis clases modelo se establecen de la siguiente manera.

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; }
}

El código EF primero genera el siguiente

Editar

Solo para hacerle saber a cualquiera que tenga los mismos problemas.

Ahora he resuelto esto cambiando la interfaz de IParent a una clase abstracta que mis clases ahora tienen el siguiente aspecto

[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; }
}

con un arreglo de mesa de

Esto funcionará aunque hubiera sido mejor si se hubiera podido cumplir con el original.

Respuestas a la pregunta(2)

Su respuesta a la pregunta