Skip to main content
.NET 6.0+

Enumeration Properties in EF Core

The example below illustrates how to implement Enumeration Properties in an EF Core Code-First class.

public virtual TextOnlyEnum TextOnlyEnumProperty { get; set; }
public virtual TextAndImageEnum TextAndImageEnumProperty { get; set; }
// ...
public enum TextOnlyEnum { Minor, Moderate, Severe }
public enum TextAndImageEnum {
    [ImageName("State_Priority_Low")]
    Low,
    [ImageName("State_Priority_Normal")]
    Normal,
    [ImageName("State_Priority_High")]
    High 
}

// Make sure that you use options.UseChangeTrackingProxies() in your DbContext settings.

To be able to use this enumeration type in design-time criteria editors, register it in the constructor of your ModuleBase descendant using the EnumProcessingHelper.RegisterEnum method as follows.

using DevExpress.Data.Filtering;
//...
public sealed partial class MySolutionModule : ModuleBase {
    public MySolutionModule() {
        InitializeComponent();
        EnumProcessingHelper.RegisterEnum(typeof(MySolution.Module.BusinessObjects.MyClass.TextOnlyEnum));
        //...
    }
    //...
}
See Also