0
作为示例,我有一个对象Person,Person由男人和女人继承。 Person包含男人和女人共享的属性,而男人和女人包含特定的属性。用Code First存储对象,作为类和子类相关
我想要做的就是使用Entity Framework 4.1 Code First将它们存储在数据库中。所以我做了三个模型对象
class Person {
int Id { get; set; }
string Name { get; set; }
string Weight { get; set; }
public virtual Woman Woman { get; set; }
public int WomanID { get; set; }
public virtual Man Man { get; set; }
public int ManID { get; set; }
}
class Woman {
int Id { get; set; }
bool IsPregnant { get; set; }
}
class Man {
int Id { get; set; }
bool ThinksWithDick { get; set; }
}
所以我人 - >男人/女人有1到0..1的关系。我不知道如何用Code First强制执行此操作。我读过1对1关系(here),但那不是我要找的。
也许这完全是错误的方法,但我相信别人碰到了同样的事情。无需手动应用数据库中的约束就可以完成。
在你的情况下,无论是男人还是女人都可以从Person类派生出来。 – hazimdikenli 2011-05-13 09:33:48
我尝试了继承方式。所以女人/男人继承人。在数据库中,EF在Person表中添加一个“Discriminator”字段,其中包含类名“Woman”或“Man”。这似乎恰好符合我的需要。感谢名单! – Saab 2011-05-13 09:48:02