У меня есть следующие классы:
public class Speciality
{
[Required]
public virtual string Name { get; set; }
public virtual string Key { get; set; }
public virtual string Image { get; set; }
public virtual int? ParentChildrenId { get; set; }
[ForeignKey("ParentChildrenId")]
public List<Speciality> Children { get; set; }}
}
public class Category
{
[Required]
public virtual string Name { get; set; }
[Required]
public virtual string Key { get; set; }
public virtual string Image { get; set; }
public List<Speciality> Specialities { get; set; }
}
public class CreateOrEditCategoryDto
{
[Required]
public string Name { get; set; }
[Required]
public string Key { get; set; }
public string Image { get; set; }
public List<CreateOrEditSpecialityDto> Specialities { get; set; }
}
public class CreateOrEditSpecialityDto : EntityDto<int?>
{
[Required]
public string Name { get; set; }
public string Key { get; set; }
public string Image { get; set; }
public List<SpecialityDto> Children { get; set; }
}
Я пытаюсь получить значения всех подспеций дерева.
---- Категория 1
- Специальность 1
-- Speciality 2
--Speciality 3
---- Категория 2
Моя проблема в том, что я не получаю все специальности в подузле специальности 2. Как я могу получить всеДочерние узлы заполнены по специальности 2 детей?
Остальные заполнены хорошо.Моя база данных заполнена правильно, чтобы показать дерево.
Мой код ниже:
var categories = _categoryRepository.GetAll().Include(e => e.Specialities);
var categoriesDtos = (from o in categories
select new CreateOrEditCategoryDto()
{Name = o.Name,
Id = o.Id,
Key = o.Key,
Image = o.Image,
Specialities = (from s in o.Specialities
select new CreateOrEditSpecialityDto()
{
Id = s.Id,
Key = s.Key,
Children = ObjectMapper.Map<List<SpecialityDto>>(s.Children)
}).ToList()
}).ToList();