正确映射两种类型的集合

时间:2017-09-21 15:10:58

标签: c# entity-framework-6

我有一个真正伤害我ATM的问题。我搜索了很多,但直到现在我找不到任何工作。我有这样的POCO(简化):

public class Foo            // goes to Fooes table
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

    // more FOO properties here

    public List<MyImageType> Images { get; set; }
}

public class Bar            // goes to Bares table
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

    // more BAR properties here

    public List<MyImageType> Images { get; set; }
}

public class MyImageType    // goes to MyImageTypees table
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

    // more IMAGE properties here
}

正如你所看到的,Foo和Bar不会继承或其他东西。我没有配置任何特别的东西。

我的问题是,默认情况下,EF会在MyImageType表中生成包含Foo_Id和Bar_Id列的数据库,这显然包含许多NULL值。

我尝试引入一个新类型的ImageContainer,并让Foo和Bar子类化它,并希望我最终会得到一个包含MyImageType列的表,一个ID列和一个包含此数据所属类型的鉴别器列。但它没有用。我错过了重要的事吗?如果我必须做得更清楚,请告诉我。提前谢谢!

0 个答案:

没有答案