我的第一个实现是使用完整的实体类来表示性别。然后,我会有一个多对一的关系,例如患者对性别。我看得越多,对我来说就不再适合了,因为性别很快就不会发生变化。而且由于我使用Guid梳子映射主键,因此外键占用了大量空间,在查看原始数据库表时,很难弄清楚Guid代表什么。所以,我想知道其他开发人员如何处理这个和类似的映射(例如颜色)。肯定有些东西经常使用。
答案 0 :(得分:4)
由于它们是很少改变的属性(没有过于政治,只有2种人类性别),我将它们映射为enum
。
public enum Genre
{
Unknown = 0,
Male = 1,
Female = 2
}
默认情况下,这会将字符串值保存到数据库(即“Unknown”,“Male”或“Female”),因此要保存整数值(即0,1或2),我把它映射为:
Map(x => x.Genre).CustomType(typeof(Genre));
有时我发现保存字符串值而不是整数更好,所以我相应地在两个映射之间进行操作。