0
이것은 LINQ-to-SQL입니다.LINQ 쿼리로 StackOverflow 예외가 발생합니다.
얼마나 많은 레벨이 있는지 보려면 SiteCategories
의 계층 적 관계를 탐색하려고합니다.
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;
불행히도 루프의 첫 번째 반복은 StackOverflow 예외를 발생시킵니다. 나는이 쿼리의 대부분이나 전부를 더 빨리 구체화함으로써 내 몰래 빠져 나올 수 있다고 생각하지만이 문제를 해결할 더 좋은 방법이 있기를 바라고 있습니다.
고맙습니다. 웬일인지 당신이 그것을 쓰는 것을 보는 것은 내가 필요로했던 것이다. 나는 지금 어리 석다. –
문제는 없지만 항상 발생합니다. – McKay