Отображение нечитаемых данных БД в читаемый формат - PullRequest
2 голосов
/ 10 апреля 2019

У меня есть таблица, которая содержит поле, содержащее только цифры.То, чего я пытаюсь добиться, - это представлять действительные числа в перечислении и «переводить» числа в значения, которые могут быть прочитаны.

Например, у меня есть таблица User с полем под названием User Roles.Существует 4 вида ролей: super admin, admin, manager и regular user.

Super Admin is represented as 0 Admin is represented as 1 Manager is represented as 2 ManagerAdmin is represented by 3 (combination of admin = 1 and Manager = 2) Regular user is represented as 4

Как отобразить Manager; Admin при попытке переводаиз Enum = 3?

UserModel

public int UserRoles {get; set;} public string UserNames {get; set;} public string UserAddress {get; set;}

Enum

public enum UserRole
{
  SuperAdmin = 0,
  Admin = 1,
  Manager = 2,
  Regular = 3
  ManagerAdmin = 4
}

C # код

public IEnumerable<User> UserInfo()
{
 var userInfo = context.User.Select(u => new UserModel
 {
   UserRoles = u.Roles, //this is where I want the actual string roles
   UserNames = u.Names,
   UserAddress = u.Address
 }).ToList();
}

// Я думал примерно так:

if(u.Roles == 0)
{
    // project Super Admin
}
else if(u.Roles == 1)
{
    // project Admin
} etc...

1 Ответ

1 голос
/ 10 апреля 2019

Enum.GetName(typeof(UserRole), enumValue) даст вам Rolename, который вы ищете. Здесь enumValue будет 0,1,2,3

var userInfo = context.User.Select(u => new UserModel
{
   UserRoles =Enum.GetName(typeof(UserRole), u.Roles) , 
   UserNames = u.Names,
   UserAddress = u.Address
}).ToList();
...