LINQ-to-SQL. J'essaie de remonter une relation hiérarchique de SiteCategories
pour voir combien de niveaux il y a.La requête LINQ crée une exception StackOverflow
int numLevels = 1;
//I tried setting this to new[] { parentID }.AsQueryable();
//but linq didn't like it
IQueryable<int> nextBatchOfParents = _catalogdb.SiteCategories
.Where(c => c.SiteCategoryId == parentID)
.Select(c => c.SiteCategoryId);
while ((nextBatchOfParents = _catalogdb.SiteCategoryRelationships
.Where(rel => nextBatchOfParents.Any(x => x == rel.ChildSiteCategoryId))
.Select(rel => rel.ParentSiteCategoryId)).Any())
++numLevels;
Malheureusement, la première itération de la boucle provoque une exception StackOverflow. Je suppose que je pourrais me frayer un chemin en matérialisant la plupart/toutes ces requêtes plus tôt, mais j'espère qu'il y a une meilleure façon de résoudre ce problème.
Merci. Pour une raison quelconque, vous voyez que c'est ce dont j'avais besoin. Je me sens bête maintenant. –
Pas de problème, ça arrive tout le temps. – McKay