C# 如何使用EF将int映射到enum

C# 如何使用EF将int映射到enum,c#,entity-framework,C#,Entity Framework,在EFv1中是否有将int字段映射到enum的方法?谢谢我希望我的实体具有enum字段而不是int字段。您只需将int转换为enum,如下所示: public enum TestEnum { Zero = 0, One, Two } TestEnum target = (TestEnum)1; 然后目标应该包含TestEnum.One 编辑:我的不好,一开始翻译不好。你想让地图帮你处理演员阵容,对吗?如果现在不知道,就必须进行一些实验。创建两个属性。一个映射到EF,一个作为包装器 [EdmS

在EFv1中是否有将int字段映射到enum的方法?谢谢我希望我的实体具有enum字段而不是int字段。

您只需将int转换为enum,如下所示:

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

TestEnum target = (TestEnum)1;
然后目标应该包含TestEnum.One


编辑:我的不好,一开始翻译不好。你想让地图帮你处理演员阵容,对吗?如果现在不知道,就必须进行一些实验。

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

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

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

新版本支持它:现在支持:

您可以将int属性设置为私有、内部或受保护。EF可以访问该属性吗?@Arthur:您可以解释
[EdmscalProperty]
属性的用途吗?我查了一下,但并没有真正看到它在这里添加了什么。@乔纳森·伍德:@亚瑟:谢谢,但我确实看到了那个引用,但仍然不清楚它到底有什么不同。如果你去掉了这个属性,你能说些什么不同吗?