有没有办法可以将生成的实体映射到枚举?
我的意思很简单:
class Person
{
RelationshipStaus RelationshipStatus { get; set; }
}
enum RelationshipStatus : byte
{
Single,
Married,
Divorced
}
DB中的属性RelationshipStatus是一个简单的字节,我希望在我的项目中它应该是一个枚举。
答案 0 :(得分:4)
不幸的是,你不能,至少不能直接。为方便起见,您可以创建一个访问器,将值转换为枚举类型:
public int RelationshipStatusInt { get; set; }
public RelationshipStatus RelationshipStatus
{
get { return (RelationshipStatus)RelationshipStatusInt; }
set { RelationshipStatusInt = (int)value; }
}
但是,您无法在Linq到EF查询中使用该属性,因为它不会映射到数据库列(但您可以在Linq to Objects查询中使用它)。
另一种解决方案被描述为here,但感觉有点尴尬......
答案 1 :(得分:2)
正如托马斯所说,没有解决方案。
我只是推荐那些在EF中使用枚举的用户,并投票支持此连接:http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/1015335-support-for-enums
答案 2 :(得分:0)
EF≥5时支持枚举。
请参阅this。