J'ai quelques données hiérarchiques. La classe du modèle que j'utilise ressemble à ceci:Récupération des données hierarchal dans le code d'entité-Premier
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
Je l'ai utilisé les techniques décrites here pour stocker mes données, et l'insertion et la récupération de données ne sont pas un problème.
Ce que je voudrais faire, est d'ajouter une collection de catégorie à cette classe:
public virtual IEnumerable<Category> {get; set; }
Je l'ai utilisé cette technique dans le passé (appris des tutoriels Mvc), d'inclure des tableaux liés lors de l'obtention Les données. Cependant, quand j'ai essayé ceci j'ai reçu une erreur en ce qui concerne IEnumerable <> étant abstrait (ce qui est compréhensible, je suppose que le cadre n'a pas pu comprendre ce que je veux faire) ...
... et en effet , étant nouveau à LINQ, je n'ai aucune idée de ce que le LINQ ressemblerait qui me donnerait une collection de Category
instances dont chacune avait leurs enfants à l'intérieur.
Si ce n'est pas possible, je suppose que je peux construire la liste manuellement, utiliser une requête LINQ régulière pour obtenir toutes les catégories à une position particulière (et leurs enfants) et remplir tout cela manuellement. Je me demandais si LINQ pouvait faire ça pour moi?
Merci d'avance!
Etes-vous sûr que vous ne voulez pas utiliser l'héritage? – Euphoric