Я пытаюсь привести тип навыка к типу SkillViewModel.
Здесь я пробую приведение:
SkillViewModel skillViewModel = (SkillViewModel)skill;
Это моя модель навыков, которую я пытаюсь преобразовать:
public class Skill
{
public int SkillId { get; set; }
public string SkillName { get; set; }
public string SkillDescription { get; set; }
public int SkillLevelId { get; set; }
public string SkillLevelDescription { get; set; }
public int LevelId { get; set; }
public int LevelNumber { get; set; }
}
Это SkillViewModel, в который я пытаюсь конвертировать. Он наследует навык и имеет одно добавленное свойство RoleId:
public class SkillViewModel : Skill
{
public int RoleId { get; set; }
}
============================== ==================================================
Решено:
Вместо того, чтобы приводить объект умения к типу SkillViewModel, я просто создал новый экземпляр и явно скопировал каждый из них в умение SkillViewModel, добавив в конце роль roleId.
Вот так:
private SkillViewModel[] GetRoleSpecificSkills(Skill[] skills, int roleId)
{
var results = new List<SkillViewModel>();
foreach (var skill in skills)
{
SkillViewModel skillViewModel = new SkillViewModel();
skillViewModel.SkillId = skill.SkillId;
skillViewModel.SkillName = skill.SkillName;
skillViewModel.SkillDescription = skill.SkillDescription;
skillViewModel.SkillLevelId = skill.SkillLevelId;
skillViewModel.SkillLevelDescription = skill.SkillLevelDescription;
skillViewModel.LevelId = skill.LevelId;
skillViewModel.LevelNumber = skill.LevelNumber;
skillViewModel.RoleId = roleId;
results.Add(skillViewModel);
}
return results.ToArray();
}