У меня есть некоторые иерархические данные.Класс Model, который я использую, выглядит следующим образом:
public class Category
{
[Key]
public int CategoryID { get; set; }
[Required]
[StringLength(64)]
public string Name { get; set; }
public int? ParentCategoryID { get; set; }
[ForeignKey("ParentCategoryID")]
public Category ParentCategory { get; set; }
[Required]
public int ListOrder { get; set; }
// left/right
public int TreeLeft { get; set; }
public int TreeRight { get; set; }
} // eo class Category
Я использовал методы, описанные здесь , для хранения моих данных, и вставка и получение данных не проблема.
Что я хотел бы сделать, так это добавить коллекцию категорий в этот класс:
public virtual IEnumerable<Category> {get; set; }
Я использовал эту технику в прошлом (изучено из уроков по Mvc), чтобы включать связанные таблицы, когдаполучение данных.Тем не менее, когда я попытался это сделать, я получил ошибку в связи с тем, что IEnumerable <> является абстрактным (что понятно, я думаю, что фреймворк не смог понять, что я хочу сделать) ...
...и действительно, будучи новичком в LINQ, я понятия не имею, как будет выглядеть LINQ, который вернул бы мне коллекцию Category
экземпляров, каждый из которых имел своих детей внутри.
Если это невозможно, яПолагаю, я могу составить список вручную, использовать обычный запрос LINQ, чтобы получить все категории в определенной позиции (и их дочерние элементы), и заполнить все вручную.
Мне было интересно, сможет ли LINQ сделать это для меня?
Заранее спасибо!