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