Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Map string column in Entity Framework to Enum

Tags:

Is there a way to map a string column to an enum in an Entity Model?

I have done this in Hibernate, but can't figure it out in EMF.

like image 908
Sheldon Warkentin Avatar asked Sep 15 '11 22:09

Sheldon Warkentin


1 Answers

Probably a nicer version.

OrderStateIdentifier field is used for both JSON serialization and database field, while OrderState is only used in the code for convenience.

    public string OrderStateIdentifier     {         get { return OrderState.ToString(); }         set { OrderState = value.ToEnum<OrderState>(); }     }      [NotMapped]     [JsonIgnore]     public OrderState OrderState { get; set; }   public static class EnumHelper {     /// <summary>     /// Converts string to enum value (opposite to Enum.ToString()).     /// </summary>     /// <typeparam name="T">Type of the enum to convert the string into.</typeparam>     /// <param name="s">string to convert to enum value.</param>     public static T ToEnum<T>(this string s) where T: struct     {         T newValue;         return Enum.TryParse(s, out newValue) ? newValue : default(T);     } } 
like image 161
Crulex Avatar answered Oct 17 '22 03:10

Crulex