EF4 POCO生成对象中的枚举

时间:2011-02-28 21:33:58

标签: .net entity-framework entity-framework-4 poco

由于EF4缺乏枚举支持,我一直在尝试实施以下列出的解决方法:

http://blogs.msdn.com/b/alexj/archive/2009/06/05/tip-23-how-to-fake-enums-in-ef-4.aspx?PageIndex=1&CommentPosted=true#comments

但是,我正在为EF4使用POCO生成器(文章没有使用),并且我不断收到以下运行时错误:

无法找到EntityType的映射和元数​​据信息......

大概这是因为CreateObjectSet不理解包装类。

是否有人能够找到合适的解决方案来支持EF4中使用生成的POCO的枚举?

感谢。

1 个答案:

答案 0 :(得分:7)

是的,EF4(或CTP5)不支持枚举类型属性;当然我们需要它们,我听说它们将在下一个版本中实现。

这是一种解决方法:

public enum FieldDataType
{ 
    Image,
    RawText,
    Ajax
}

public class DefinitionDynamicField
{
    public int FieldType { get; set; }

    [NotMapped]
    public FieldDataType FieldTypeObserver 
    { 
        get { return (FieldDataType)FieldType; }
        set { return FieldType = (int)value; }
    }
}

我们使用FieldTypeObserver代替FieldType

这很难看,但确实有效。