Enumeration class in Repository Pattern

How can I read from my database a int attribute that in my system is an attribute of type Enumeration in Repository Pattern ?

I made a class:

public class Status : Enumeration
    public static readonly Status Active = new Status(0, "Active");
    public static readonly Status Inactive = new Status(1, "Inactive");
    public static readonly Status Removed = new Status(2, "Removed");

    public Status()

    private Status(int value, string displayName)
        : base(value, displayName)

Then in class Bank I put an attribute of type Status ;

At the time of reading from the database where my class Bank is a table with an attribute Status type int , but the attribute is null .

How can I resolve this?

asked by anonymous 27.12.2016 / 18:35

2 answers


Thanks for the messages, I have solved the problem.

Create the class that inherits from Enumeration the following:

public class Status : Enumeration

  **public static Status FromInteger(int value){
      case 0: 
        return Active;
      case 1: 
        return Inactive;
      case 2: 
        return Removed;
        throw new ArgumentException();

Then in Bank class I did the following:

public class Bank {

   //Standard fields that are mapped to a table in database 

   public Status StatusEnum {
     get {
        Status.FromInteger(StatusId); //StatusId is a property mapped to table's field

     set {
        //TODO Handle null value
        StatusId = value.Value;

Adding in addition a StatusId attribute that is the type attribute of the database and I'm stuck.

28.12.2016 / 12:03

If you are using the Entity Framework it automatically identifies, ie saves as int in the database and creates the object with the enumeration. What I tell you to do is to change this enumeration to something like this:

public enum Status

Find out that enums are not saved in the database, it will be an int column of the table that has the enum as property.

27.12.2016 / 18:40