这是LINQ-to-SQL。
我正试图建立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异常。我猜我可以通过更早地实现大多数/所有这些查询来摆脱困境,但我希望有更好的解决方法。
答案 0 :(得分:3)
看起来你正在调用本身的nextbatchofparents。