由于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

但是,我正在将POCO生成器用于EF4(本文未使用),并且不断收到以下运行时错误:

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

大概是因为CreateObjectSet无法理解包装器类。

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

谢谢。

最佳答案

是的,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

这是丑陋的,但有效。

关于.net - EF4 POCO生成的对象中的枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5147822/

10-12 15:27