LINQ查询创建一个StackOverflow异常
本文关键字:一个 StackOverflow 异常 查询 创建 LINQ | 更新日期: 2023-09-27 18:14:27
这是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异常。我猜我可以偷偷摸摸地通过实现大多数/所有这些查询更快,但我希望有一个更好的方法来解决这个问题。
看起来像是在调用nextbatchofparents。