有没有办法将生成的实体映射到枚举?

我的意思很简单:

class Person
{
    RelationshipStaus RelationshipStatus { get; set; }
}

enum RelationshipStatus : byte
{
    Single,
    Married,
    Divorced
}


数据库中的RelationshipStatus属性是一个简单的字节,我希望在我的项目中它应该是一个枚举。

最佳答案

不幸的是,你不能,至少不能直接。为方便起见,您可以创建一个将值与枚举类型相互转换的访问器:

public int RelationshipStatusInt { get; set; }

public RelationshipStatus RelationshipStatus
{
    get { return (RelationshipStatus)RelationshipStatusInt; }
    set { RelationshipStatusInt = (int)value; }
}


但是,您将无法在Linq to EF查询中使用该属性,因为它不会被映射到DB列(但是您可以在Linq to Objects查询中使用它)。

here描述了另一种解决方案,但感觉有点尴尬...

09-27 14:58