这个Linq查询是否会产生多次到SQL Server的运行?

时间:2012-08-01 16:53:31

标签: c# sql-server linq-to-sql linq-to-entities

以下是代码:

public IEnumerable<SomeItem> DescendantsAndSelf()
{
    yield return this;
    foreach (var item in Children.SelectMany(x => x.DescendantsAndSelf())
    {
        yield return item;
    }
}

我从这里得到了这个代码: https://stackoverflow.com/a/4814278/184773

这是一个递归的linq查询。我想实现这一点,但害怕我把我的服务器关闭。你知道这是否能够多次运行到服务器吗?

1 个答案:

答案 0 :(得分:2)

如果您只想进行一次调用,可以使用recursive CTE在SQL中实现递归查询,并将其作为可以从LINQ调用的存储过程公开给您的应用程序。