模板化对象为POCO

时间:2011-04-21 10:01:02

标签: c# .net entity-framework

为了在edmx中表示枚举,我使用了包装器:

这是Enum:

public enum CompanyType
    {
        SMALL_BUSINESS,
        REGISTERED_BUSINESS,
        PROPRIETARY_LIMITED_COMPANY
    }

这是包装器:

public class CompanyTypeWrapper
{
    public CompanyType CompanyTypeEnum { get; set; }

    public string CompanyTypeName
    {
        get
        {
            return Enum.GetName(typeof(CompanyType), CompanyTypeEnum);
        }
        set
        {
            if (Enum.IsDefined(typeof(CompanyType), value))
            {
                CompanyTypeEnum = (CompanyType)Enum.Parse(typeof(CompanyType), value);
            }
        }
    }

    public static implicit operator CompanyTypeWrapper(CompanyType t)
    {
        return new CompanyTypeWrapper() { CompanyTypeEnum = t };
    }

    public static implicit operator CompanyType(CompanyTypeWrapper tw)
    {
        if (tw == null) return CompanyType.SMALL_BUSINESS;
        else return tw.CompanyTypeEnum;
    }
}

CompanyTypeName属性具有来自数据库的枚举代码。 CompanyTypeWrapper是用于保存数据库中枚举值的POCO对象。 因为我有很多枚举 - 我可以使用模板化的EnumWrapper吗?那么在edmx中POCO对象用来保存枚举值会是模板吗?如果是 - 我应该如何调用实体的名称? CompanyType将由EnumWrapper表示 - 是否可能?

1 个答案:

答案 0 :(得分:0)

我认为这个问题已经出现在Stack Overflow上了,答案是肯定的。 EDMX不支持模板。