У меня есть контроллер .NetCore 3 Entity Framework, который возвращает такой объект:
var games = await _context.Game
.Select(x => new GameEntity
{
Id = x.Id,
Title = x.Title,
GameCharacterClasses = x.GameCharacterClasses
}).ToListAsync();
Класс GameEntity выглядит следующим образом:
public partial class GameEntity
{
public GameEntity()
{
GameCharacterClasses = new HashSet<GameCharacterClasses>();
}
public long Id { get; set; }
public string Title { get; set; }
public virtual ICollection<GameCharacterClasses> GameCharacterClasses { get; set; }
}
GameCharacterClasses - это массив с Идентификатор игры и идентификатор класса персонажа.
Дело в том, что мне действительно нужно имя персонажа, а не идентификатор игры или класса персонажа.
Есть ли способ сделать основанная на коде таблица или переменная, чтобы я мог найти нужное имя CharacterClass на основе Id?
Например, если массив GameCharacterClasses содержит Ids (GameId, CharacterClassId)
[(5, 1), (5, 4), (5, 7)]
Тогда массив должен содержать
'Wizard', 'Fighter', 'Cleric'?
Я пытался использовать сложное дерево if / then, но оно вышло из-под контроля.
Я хотел бы иметь какой-то тип поиска на основе переменная, если это возможно ... как:
0 : Thief
1 : Wizard
2 : Paladin
3 : Assassin
etc...
Есть ли способ сделать это в c#?
Спасибо!