2011-04-21 53 views
0

爲了表示在EDMX枚舉我使用的包裝:模板對象作爲POCO

這是枚舉:

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表示 - 是否有可能?

回答

0

我認爲這個問題已經出現在Stack Overflow上,答案是否定的。 EDMX不支持模板。

+0

你沒錯 - 這裏是解決方案:http://stackoverflow.com/questions/5300776/ef-4-0-generics-based-inheritance/5303314#5303314 – Naor 2011-04-21 11:57:49