Afin de représenter énumérations dans le edmx J'utilise emballage:objet basé sur un modèle comme POCO
C'est le Enum:
public enum CompanyType
{
SMALL_BUSINESS,
REGISTERED_BUSINESS,
PROPRIETARY_LIMITED_COMPANY
}
C'est l'emballage:
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;
}
}
propriété CompanyTypeName a le code de l'énumération qui provient de la base de données. CompanyTypeWrapper est l'objet POCO utilisé pour contenir la valeur enum de la base de données. Parce que j'ai beaucoup d'énumération - puis-je utiliser EnumWrapper avec un modèle? alors que dans l'edmx l'utilisation de l'objet POCO pour contenir la valeur enum sera template? si oui - comment dois-je appeler le nom de l'entité? CompanyType sera représenté par EnumWrapper - est-ce possible?
Vous droite - est la solution ici: http://stackoverflow.com/questions/5300776/ef-4-0-generics-based-inheritance/5303314#5303314 – Naor