作为一个例子,我有一个对象Person,而Person则由男人和女人继承。人包含男人和女人共享的属性,男人和女人包含特定属性。
我想做的是使用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),但这不是我想要的。
也许这是完全错误的做法,但我确信其他人也碰到了同样的事情。可以在不借助手动应用数据库中的约束的情况下完成。
答案 0 :(得分:1)
从人身上移除ManId和WomanId以及男人和女人。 将PersonId和Person添加到Woman and Man类。
class Person {
int Id { get; set; }
string Name { get; set; }
string Weight { get; set; }
}
class Woman {
int Id { get; set; }
bool IsPregnant { get; set; }
int PersonId {get; set;}
public virtual Person {get; set;}
}
class Man {
int Id { get; set; }
bool ThinksWithDick { get; set; }
int PersonId {get; set;}
public virtual Person {get; set;}
}