2010-07-27 135 views
3

有没有一种方法可以将生成的实体映射到枚举?实体框架实体中枚举类型的属性?

而且我的意思很简单:

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

enum RelationshipStatus : byte 
{ 
    Single, 
    Married, 
    Divorced 
} 

酒店RelationshipStatus在DB是一个简单的字节,我想在我的项目应该是一个枚举。

+0

EF6现在支持枚举映射。 – 2014-12-03 12:15:11

回答

4

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

public int RelationshipStatusInt { get; set; } 

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

然而,你将无法使用,在LINQ的属性EF查询,因为它不会被映射到一个数据库列(但您可以在Linq中使用它来查询对象)。

另一种解决方案是描述here,但感觉有点别扭......