我有一个真正伤害我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列和一个包含此数据所属类型的鉴别器列。但它没有用。我错过了重要的事吗?如果我必须做得更清楚,请告诉我。提前谢谢!