2010-01-15 67 views
5

将int映射到枚举中是否有将int字段映射为EFv1中的枚举的方法?谢谢!我希望我的实体具有枚举字段而不是int字段。如何使用EF

回答

6

创建两个属性。一个映射到EF,一个作为包装

[EdmScalarProperty] 
public int EnumPropInteger {get;set} 
public MyEnum EnumProp 
{ 
    get { return (MyEnum) EnumPropInteger; } 
    set { EnumPropInteger = (int)value; } 
} 

不是一个好方法,因为你有两个公共属性,但方式。

+0

您可以设置整型属性是私有的,内部的,或受保护的。 – devlife 2010-01-15 19:58:44

+2

而EF可以访问那么这个属性? – Arthur 2010-01-16 10:08:28

+0

@Arthur:你能解释一下'[EdmScalarProperty]'属性的用途吗?我查了一下,但并没有真正看到它在这里增加了什么。 – 2012-01-20 18:21:20

-2

您可以简单地把int值枚举这样的:

public enum TestEnum 
{ 
Zero = 0, 
One, 
Two 
} 

TestEnum target = (TestEnum)1; 

那么目标应该包含TestEnum.One;

编辑:我的坏,起初没有正确解释。你想让地图为你处理剧组,对吗?现在不知道,不得不尝试一下。